- 1、本文档共107页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章808的寻址方式和指令系统
例如: XOR AX,AX XOR SI,SI 指令执行后可使AX、SI清零。 XOR指令执行后,标志位CF=0,OF=0,标志位PF、SF,ZF将反映“异或”操作的结果。标志AF未定义。 2.移位指令 (1)SAL/SHL算术左移和逻辑左移指令 指令格式:SAL/SHL OPRD,CL/1 指令功能:这两条指令的操作结果是完全一样的,将目的操作数OPRD中的二进制数向左移动1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移出送到CF中,同时最低位送0。目的操作数可以是8位,也可以16位。 目的操作数OPRD:可以是累加器、寄存器、也可是存储器。 利用左移1位操作可实现操作数乘2的运算。 例如:SHL AL,1 MOV CL,4 SHL AL,CL (2)SAR算术右移指令 指令格式:SAR OPRD,CL/1 指令功能:将目的操作数OPRD中的二进制数向右移动1位或CL寄存器中指定的位数。该指令每执行一次移位操作,就使操作数右移一位,但符号位保持不变,而最低位移至标志位CF,目的操作数可以是8位,也可以16位。 例如:MOV AH,5AH SAR AH,1 指令执行完后,(AH)=2DH,CF=0 (3)SHR逻辑右移指令 指令格式:SHR OPRD,CL/1 指令功能:将目的操作数OPRD中的二进制数向右移动1位或CL寄存器中指定的位数。该指令每执行一次移位操作,就使操作数右移一位,左面的最高位将补0,最低位移至标志位CF中。目的操作数可以是8位,也可以16位。 例如:MOV BL,4EH SHR BL,1 指令执行后,(BL)=27H,CF=0 3.循环移位指令 (1)ROL不带进位的循环左移指令 指令格式:ROL OPRD,CL/1 指令功能:将目的操作数OPRD中的二进制数向左移动1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移出送到CF中,同时送至最低位。目的操作数可以是8位,也可以16位。 例如:MOV AL,5BH ROL AL,1 指令执行完后,(AL)=B6H,CF=0 (2)ROR不带进位的循环右移指令 指令格式:ROR OPRD,CL/1 指令功能:将目的操作数OPRD中的二进制数向右移动1位或CL寄存器中指定的位数。右移一位时,操作数的最低位移出送到CF中,同时送至最高位。目的操作数可以是8位,也可以16位。 例如:MOV AL,6BH ROL AL,1 指令执行完后,(AL)=B5H,CF=1 (3)RCL带进位的循环左移指令 指令格式:RCL OPRD,CL/1 指令功能:将目的操作数OPRD中的二进制数向左移动1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移出送到CF中,而原来的CF位送至最低位。目的操作数可以是8位,也可以16位。 例如:MOV AL,4CH RCL AL,1 指令执行后,(AL)=99H,CF=0 (4)RCR带进位的循环右移指令 指令格式:RCR OPRD,CL/1 指令功能:将目的操作数OPRD中的二进制数向右移动1位或CL寄存器中指定的位数。右移一位时,操作数的最低位移出送到CF中,而原来的CF位送至最高位。 例如:MOV AL,5CH RCR AL,1 指令执行完后,(AL)=AEH,CF=0 3.2.4串操作指令 在串操作中,一般假定源串在数据段中(DS),用SI作源串地址指针,而目的串在附加段中(ES),用DI作目的串地址指针。 在每做一次串操作后,若是对字节进行操作,则SI和DI的值会自动加1或减l;若是对字进行操作,则SI和DI的值就自动加2或减2,是加还是减由DF标志寄存器来决定。 若DF=0,则SI和DI增量修改; DF=1,则SI和DI做减量修改。 在串操作前可用STD指令使DF位置l, 也可以用CLD指令使DF位清0。 1.MOVS串传送指令 指令格式:MOVS OPRD1,OPRD2 MOVSB ;字节传送 MOVSW ;字传送 指令功能:(DI)←((SI)) 字节操作 SI←(SI)?1;DI←(DI)?1; 字操作 SI←(SI)?2;DI←(DI)?2; 该类指令执行时,将把当前数据段中用SI指针指出的源串的一
文档评论(0)