- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8086指令系统3课件
第三章 8086的指令系统III;3. 乘法指令(Muitiply);AL;(3)AAM乘法的ASCII调整指令
指令格式:AAM (ASCII Adjust for Multiply)
指令功能:对已存在AL中的非压缩十进制数相乘
的乘积进行十进制调整。AX中得到正确的非压缩
十进制数的乘积,高位在AH中,低位在AL中。
例 求两个非压缩十进制数09和06的乘积。
MOV AL,09H
MOV BL,06H
MUL BL
AAM
结果 AX=0504H;4. 除法指令(Division);16位;无符号数
被除数8位/16位的情况。;(3)CBW把字节转换为字指令
指令格式:CBW (Convert Byte to Word)
把AL中的符号位扩充到AH的所有位。
例 MOV AL,
CBW
则 AX10000011B
(4) CWD把字转换成双字指令
指令格式:CWD
(Convert Word to Double Word)
把AX中字的符号位扩充到DX的所有位。;指令中使用16位除8位,32位除16位的格式,若被除数不够16位或32位,则需要扩展指令将其扩展。;例1 求-38/3的商和余数
MOV AL,
MOV CH,
CBW
IDIV CH;(5)AAD除法的ASCII调整指令
指令格式:AAD (ASCII Adjust for Division)
指令功能:在做除法前,把BCD码转换成二进制数。
把AX中的两位非压缩十进制数(BCD)除以一个非压缩十进制数前,要先用AAD指令把AX中的被除数调整为二进制数,并存到AL中,才能用DIV指令进行运算。
例 设AX中存有两位非压缩BCD数0307H,即十进制数37,BL中存有一个非压缩BCD数05H,若要完成AX/BL的运算,可用以下指令:
AAD ;使得AL=25H
DIV BL ;结果AL=7(商);AH=2(余数);加法;三、 逻辑运算和移位指令 (表3-7);其他逻辑运算指令,总使OF=CF=0,ZF、PF、SF
根据运算结果被置位或复位,反映操作结果特征;
AF不定。;(2)AND 逻辑与指令(Logical AND)
指令格式:AND 目的,源;
目的 目的 ∧ 源
例 设AX=3538H ,
AND AX,0F0FH ;则结果AX=0508H。
00111000
∧00001111
00001000
应用: 由源操作数控制,可以用来屏蔽或保留某些
位。;(3) OR ??辑或指令(Logical OR)
指令格式:OR 目的,源 ;目的 目的 ∨ 源
例 OR AX,3030H;
设AX=0508,则结果AX=3538H
00001000
∨ 00110000
00111000
应用:可以是某些位置位或保留;(4) XOR 异或操作指令 (Exclusive OR);例 若AL中存有某外设端口的状态信息,其中D1位控制扬声器发声,要求该位在0、1之间来回变化,即原来是1变成0,原来是0变成1,其余各位保留不变,可以用以下指令实现:
XOR AL,;(5)TEST 测试指令(Test)
指令格式:TEST 目的,源 ; 目的 ∧源
执行后仅影响标志位,常用于检测某些条件是否满足,但又
不希望改变所有操作数的情况下。
例 设AL寄存器中存有报警标志。
若D7=1,表示温度报警,程序要转到温
文档评论(0)