- 1、本文档共119页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 8086/8088的指令系统 第一节 指令格式 第二节 寻址方式 第三节 8086/8088指令系统 基址寻址方式(寄存器相对寻址方式) 使用基址寄存器(BX或BP)、并带位移量的间接寻址。操作数EA=BX或BP值+位移量。 例:MOV DL,[BP+2] 其它等效写法: MOV DL,[BP]2 MOV DL,2[BP] 寻址过程示意 基址寻址过程示意图 5、固定寻址(隐含寻址) 操作数并不直接出现在指令中,而是由操作码隐含地指定为某一固定内容。 例: PUSH DS 目操作数隐含为栈顶字单元 POP BX 源操作数隐含为栈顶字单元 LAHF 源操作数隐含为标志寄存器低字节, 目操作数隐含为寄存器AH 四、I/O端口寻址 仅用于I/O指令IN、OUT。 长格式I/O寻址——端口地址在8位以内时,用端口地址直接做操作数。可寻址的I/O空间为256字节。 例: IN AX,43H OUT 0FH,AL 短格式I/O寻址——端口地址超过8位时,固定使用DX做操作数,DX的值就是该16位端口的地址。可寻址的I/O空间为65536字节。 例: IN AL,DX OUT DX,AX 计算机中的算术运算,都是针对二进制数的运算,而人们在日常生活中习惯使用十进制。为此在8086/8088系统中,针对十进制算术运算有一类十进制调整指令。 在计算机中人们用BCD码(就是用二进制数形式表示的十进制数)表示十进制数,对BCD码计算机中有两种表示方法:一类为非压缩型BCD码,即用一个字节表示一位BCD码数,在这字节的高四位用0填充;另一类称压缩型BCD码,即规定每个字节表示两位BCD码数。因此,调整指令也分为压缩型和非压缩型两种。 例如,十进制数56,表示为压缩型BCD码数时为56;表示为非压缩型BCD码数时为:0506,用两字节表示。 5.十进制(或BCD码)运算调整指令 (1)加法的十进制调整指令 1) 压缩型BCD码加法的十进制调整指令DAA 一般格式:DAA 功能:DAA用于对两个压缩型BCD码相加之后的和(和必须放在AL中)进行调整,产生正确的压缩型BCD码。调整的步骤是: ①(AL)低4位9或AF=1,则(AL)+06H→(AL),并使AF=1; ②(AL)高4位9或CF=1,则(AL)+60H→(AL),并使CF=1。 DAA指令影响除OF外的其余5个状态标志位。 例如:编程用BCD数实现35+28=? MOV AL ,35H ADD AL ,28H ;(AL)=5DH DAA ;(AL)=63H ①若(AL)低4位9或AF=1,则(AL)+06H→(AL),(AH)+1,并使AF=1; ②屏蔽掉(AL)高4位,即(AL)←(AL)∧0FH; ③ CF←AF。 2)非压缩BCD码加法的十进制调整指令AAA 一般格式:AAA 功能:AAA用于对两个非压缩型BCD码相加之后的和(和必须放在AL中)进行调整,产生正确的非压缩型BCD码,调整后的结果其高位在AH中,低位在AL中。调整的步骤是: 例如:用BCD数计算5+8=? MOV AL ,05H ADD AL ,08H ;(AL)=0DH AAA ;(AL)=03H,(AH)=1,(CF)=1 AAA指令只影响AF和CF两个态标志位。 DAA指令和AAA指令都必须紧跟在ADD或ADC指令后使用。 (2)减法的十进制调整指令 1)压缩型BCD码减法的十进制调整指令DAS 一般格式:DAS 功能:DAS用于对两个压缩BCD码相减之后的结果(必须
文档评论(0)