- 1、本文档共332页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微型计算机原理及应用【精品-PPT】 .ppt
微型计算机原理及应用西南民族大学电信学院 授 课 教 师:杜 诚联系方式 Email:dcheng_76@ §3.2 8086的寻址方式 存放于CPU内部的寄存器中 存放于存储器单元内 来自I/O端口 由操作码隐含地指定 由指令直接给出操作数 寄存器间接寻址过程 寄存器间接寻址示例 4、I/O端口寻址 仅用于输入/输出指令IN、OUT。 长格式I/O寻址——端口地址在8位以内,端口地址直接做操作数。可寻址的I/O空间为256字节。 例: IN AX,43H OUT 0FH,AL 短格式I/O寻址——端口地址16位,固定使用DX做操作数,DX的值就是该16位端口的地址。可寻址的I/O空间为65536字节。 例: IN AL,DX OUT DX,AX 通用数据传送指令MOV 堆栈操作指令PUSH、POP 数据交换指令XCHG 查表指令XLAT 地址传送指令LEA、LDS、LES 标志传送指令LAHF、SAHF、PUSHF、POPF 数据传送指令小结 源、目操作数长度必须一致。 源、目操作数不能同时是存储器操作数。 源、目操作数不能同时是段寄存器。 立即数和代码段寄存器CS不能作目操作数。 十进制调整指令 (1)加法的十进制调整指令DAA (2)加法的非压缩BCD码调整指令AAA 两个组合BCD码相加结果在AL中,通过DAA调整得到一个正确的压缩BCD码. 指令操作(调整方法): 若AL的低4位>9∨AF=1 则(AL)←(AL)+6,AF←1 若AL的高4位>9∨CF=1 则(AL)←(AL)+60H,CF←1 除OF外,DAA指令影响所有其它标志。 例: MOV AL,89 MOV BL,75 ADD AL,BL DAA 执行ADD后,(AL)=BCH,高4位低4位均大于9, 故DAA指令执行加66H调整,最后结果为: (AL)=22H, CF=1, AF=1 【例3-9】 对两个十进制数 2964+4758=? 2948和4758分别 放在BCD1和BCD2 开始单元,结果 放BCD3。 AAA指令的操作如下: [例3-10]将具有16位BCD数相加,被加数和加数分 别放在FIRST和SECOND开始的存储单元中,结果 放在THIRD开始的单元中。 根据标志位来判断比较的结果 1)根据ZF判断两个数是否相等。 若ZF=1,则两数相等。 2)若两个数不相等,则分两种情况考虑: ①比较的是两个无符号数 若CF=0,则dest>src; 若CF=1,则dest<src。 ②比较的是两个有符号数 若OF⊕SF=0,则dest>src; 若OF⊕SF=1,则dest<src。 比较指令在使用时,一般在其后紧跟一条条件转移指令,判断比较结果的转向。 举例:比较AL、BL、CL中带符号数的大小,将 最小数放在AL中。 程序: CMP AL,BL ;AL和BL比较 JNG BBB ;若AL≤BL,则转 XCHG AL,BL ;若AL>BL,则交换 BBB: CMP AL,CL ;AL和CL比较 JNG CCC ;若AL≤CL,则转 XCHG AL,CL ;若AL>CL,则交换 CCC: HLT 十进制调整指令 (1)减法的十进制调整指令DAS (2)减法的非压缩BCD码调整指令AAS 【例】压缩BCD码的减法运算。 MOV AL,68H ;(AL)=68H,表示压缩BCD码68 MOV BL,28H ;(BL)=28H,表示压缩BCD码28 SUB AL,BL ;二进制减法: ;(AL)=68H-28H=40H DAS ;十进制调整:(AL)=40H ;实现压缩BCD码减法:68-28=40 ? (7)减法的十进制调整指令 举例:16-8=? MOV AX,0106H 0000 0110 06 MOV BL,08H - 0000 1000 - 08 SUB AL,BL 1111 1110 FE AAS - 0000 011
文档评论(0)