- 1、本文档共124页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章指令(第二讲)
第二节 8086/8088的指令系统 数据传送指令 算术运算指令 逻辑运算、移位、循环指令 串操作指令 控制转移指令 处理器控制指令 输入输出指令 1)、直接寻址 IN AL,n OUT n,AL IN AX,N OUT N,AX 寻址空间为:0 ~ 255 字节 IN AL, 20H IN AX, 30H OUT 46H,AL OUT 80H,AX 2)、间接寻址 IN AL,DX OUT DX,AL IN AX,DX OUT DX,AX 寻址空间为:0000H ~ FFFFH MOV DX,1000H IN AL,DX IN AX,DX OUT DX,AL § 数据传送类指令练习 指出下列指令中的非法指令? MOV BX,AL (2) MOV BH,AL MOV 100,CL (4) MOV CL,100 MOV SS,2400H (6) XCHG AH,AL MOV AL,AL (8) XCHG 200,AL OUT 21H,AL (10) OUT 21H,AH (11) OUT 260H,AL (12) MOV [BX],BX (13) MOV [AX],CX (14) MOV [BX],BL 例:有两个4字节无符号数放在2000H和3000H单元中,低位在前,高位在后,将两个数相加,结果放2000H开始的单元中。 +20007F00H = ? 1).算法分析: 1).可以将两个4字节无符号数相加 看成2个字相加; 2).两个数的低位字相加后,将可能 产生进位CF; 3).高位字相加,应再加上进位位; 2).程序: CLC ;清进位 MOV SI , 2000H ;取第一个数的首地址 MOV AX, [SI] ;第一个数的低16位送到AX MOV DI , 3000H ;取第二个字的首地址 ADD AX , [DI] ;第一个数和第二个数相加 MOV [SI], AX ;送低16位结果倒2000H单元 MOV AX, [SI+2] ; 第二个数的高16位送AX ADC AX , [DI+2] ;高16位数据相加 MOV [SI+2],AX 逻辑运算 逻辑指令: TEST src dst NOT AND OR XOR 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 1 1 0 1 1 0 逻辑指令小结 AND指令用于对一个数据的指定位清零 OR指令用于对一个数据的指定位置1 NOT指令用于取反码,再加一,得补码 XOR指令用于对寄存器清零 TEST指令用于测试一个数据的指定位是1还是0 注意: 移位指令影响标志位CF、OF、PF、SF和ZF。 如果只移一位,指令中用1指出移位的位数,如果超过1位,必须用CL预先指明移位的位数。 例1:SAL DX,1 ;DX中的数左移1位 MOV CL,4 SA
文档评论(0)