网站大量收购独家精品文档,联系QQ:2885784924

第3章80x86指令系统和寻址方式课程.ppt

  1. 1、本文档共148页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:MOV BX,offset table ; (BX)=0040H MOV AL,3 XLAT 指令执行后 (AL)=33H 2. 移位指令 移位指令包括算术移位指令、逻辑移位指令和循环移位指令,分别进行左移和右移操作。这些指令均有统一的语句格式: [标号:] 操作符 OPR,1 或 [标号:] 操作符 OPR,CL 其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。 算术移位指令有:算术左移SAL(Shift Algebraic Left)和算术右移SAR(Shift Algebraic Right)。它们的指令格式如下: SAL/SAR OPR, CL/Imm 受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。 功能: 算术左移SAL把目的操作数的低位向高位移,空出的低位补0;   算术右移SAR把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补。 CF OPR 0 CF OPR 算术左移 算术左移 算术移位指令常用于带符号数*2或/2 逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)。 它们的指令格式如下: SHL/SHR OPR, CL/Imm 受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。 逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。 CF OPR 0 CF OPR 0 逻辑左移 逻辑右移 逻辑移位指令常用于无符号数*2或/2 循环移位指令有: 循环左移ROL(Rotate Left)和循环右移ROR(Rotate Right)。 指令的格式:ROL/ROR OPR, CL/Imm 受影响的标志位:CF和OF 循环左移/右移指令只是移位方向不同,它们移出的位不仅要进入CF,而且还要填补空出的位。 CF OPR CF OPR 循环左移 循环右移 带进位的循环移位指令有:带进位的循环左移RCL(Rotate Left Through Carry)和带进位的循环右移RCR(Rotate Right)。 指令的格式:RCL/RCR OPR, CL/Imm 受影响的标志位:CF和OF 带进位的循环左移/右移指令只有移位的方向不同,它们都用原CF的值填补空出的位,移出的位再进入CF。 CF OPR CF OPR 带进位循环左移 带进位循环右移 2. 移位指令 例:移位指令可实现乘法功能 MOV SI,AX SHL SI,1 ;SI←2×AX ADD SI,AX ;SI←3×AX MOV DX,BX MOV CL,03H SHL DX,CL ;DX←8×BX SUB DX,BX ;DX←7×BX ADD DX,SI ;DX←7×BX+3×AX 注:(1)逻辑左移一位相当于无符号数乘以2, (2)逻辑右移一位相当于无符号数除以2。 3.3.4 串处理指令 字符串操作指令的实质是对一片连续存储单元进行处理,这片存储单元是由隐含指针DS:SI或ES:DI来指定的。字符串操作指令可对内存单元按字节或字进行处理,并能根据操作对象的字节数使变址寄存器SI(和DI)增减1或2。具体规定如下: (1)当DF=0时,变址寄存器SI(和DI)增加1或2; (2) 当DF=1时,变址寄存器SI(和DI)减少1或2。 在后面各指令中,有关变址寄存器都按上述规定进行增减,不再一一说明。 1. 与 REP 配合工作的 MOVS / STOS / LODS的指令 重复前缀指令REP 重复前缀指令是重复其后的字符串操作指令,重复的次数由CX来决定。其一般格式为: REP  MOVS / STOS / LODS 重复前缀指令的执行步骤如下: (1)判断:CX=0; (2)如果CX=0,则结束重复操作,执行程序中的下一条指令; (3)否则,CX=CX-1(不影响有关标志位),并执行其后的字符串操作指令,在该指令执行完后,再转到步骤(1)。 字符串传送指令(Move String Instruction) 功能:将以

文档评论(0)

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

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

1亿VIP精品文档

相关文档