第3章80x86寻址方式与指令系统案例.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
注意点: 1)HLT指令经常和中断过程联系在一起,使CPU处于暂停状态等待硬件中断,而硬件中断的进入又使CPU退出暂停状态。 2)交权指令ESC主要用于与外部处理器(如协处理器8087)配合工作。当CPU读取ESC指令后,利用此6位外部操作码来控制外部处理器,使它完成某种指定的操作。如果源操作数是寄存器,则ESC指令不进行任何操作,若操作数是存储器,则从存储器中取得此操作数,并抛弃它,而此时外部处理器则可以读取此存储器的操作数。这相当于主CPU执行ESC指令时,取出源操作数交给协处理器。 3)WAIT指令一般是和ESC指令配合起来使用的。 4)LOCK可以放在任何指令的前面,使得加此前缀的指令执行时,总线被封锁。 3.空操作指令 格式:NOP 功能:不做任何具体的功能,也不影响标志,仅占用了三个时钟周期,有时在延时程序中为便于源程序段的调试、,可插入此指令。 3.4.3 逻辑运算和移位指令 两组处理指令:逻辑运算指令和移位指令。 1.逻辑运算指令 指令格式: AND 目的操作数,源操作数 ;逻辑与    OR 目的操作数,源操作数 ;逻辑或    NOT 目的操作数 ;逻辑非    XOR 目的操作数,源操作数 ;逻辑异或     TEST 目的操作数,源操作数 ;测试(逻辑与弃结果置标志) 举例: ① AND BL,0FH ② OR CX,[BX+DI] ③ XOR AX,0F0H ④ TEST BX,8000H ⑤ NOT WORD PTR [100H] 注意点: 1)所有的指令都对其操作数按位进行逻辑操作,操作数可以是字节或字。 2)目的操作数不能是立即数;当有两个操作数时,则不能同时都是存储器操作数。 3)TEST指令的功能和AND指令功能相似,将两数进行逻辑“与”操作,但结果不返回到目的数中,仅影响SF、ZF和PF标志位。 逻辑运算指令的用途: 1)AND指令可以将操作数的某些位清0(用1与不变,用0与清0)。 2)OR指令可以将操作数的某些位置1(用1或置1,用0或不变)。 3)XOR指令可以将操作数的某些位取反(用1异或取反,用0异或不变)。 2.移位指令 分为两大类:非循环移位指令和循环移位指令。 (1)非循环移位指令 指令格式: SAL 目的操作数,计数值 ;算术左移   SHL 目的操作数,计数值 ;逻辑左移   SAR 目的操作数,计数值 ;算术右移   SHR 目的操作数,计数值 ;逻辑右移 举例: ① SAL AX,l ② SHL AX,CL ③ SHR WORD PTR [SI],1 ④ SHR DI,1 注意点: 1)指令操作数中的目的操作数可以是字节或字。指令的目的操作数只能是寄存器或存储器操作数。计数值可以是1或CL,最多可移位255位。如果计数值大于1,就必须将计数值放入CL中。 2)算术右移保持目的操作数符号位(即最高位)不变。算术左移或右移n位,相当于把二进制数乘以或除以2n。 3)移位指令的执行结果会影响PF、SF、ZF和CF。CF总是等于目的操作数最后移出的那一位的值。AF是不定的。若只左移一位,如果最高位和CF不同,则OF置“1”,否则置“0”。对有符号数来说,以此来判断移位后的符号位和移位前的符号位不同。 (2)循环移位指令 指令格式: ROL 目的操作数,计数值 ;左循环    ROR 目的操作数,计数值 ;右循环   RCL 目的操作数,计数值 ;带进位左循环    RCR 目的操作数,计数值 ;带进位右循环 举例: ① ROL DX,l ② ROR AL,CL ③ RCL BYTE PTR [BX],1 ④ RCR WORD PTR [BX],1 注意点: 1)指令操作数中的目的操作数可以是字节或字。指令的目的操作数只能是寄存器或存储器操作数。计数值可以是1或CL,最多可移位255位。 2)循环移位时,移出的目的操作数位并不丢失,而循环送回目的操作数的另一端。 3)循环移位指令只影响CF和OF两个标志,CF中总是保存着从一端移出的那一位信息。仅当在移

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档