- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[小学教育]第三章 8086指令系统
1 0001 0111 AL CF 117 0100 10000110 1001 + 1011 0001 4869 非法和调整 + 0110 0110 调整规则:? 相加后,和的高4位,(或低4位)?1010,则加6(0110)调整。 ? 和的高4位的D7或低4位的D3出现向高位的进位,则加6调整。 例:[BCD1]=1234, [BCD2]=2345要求 [BCD1]+[BCD2]?[BCD3] BCD1 BCD2 BCD3 34H 12H 45H 23H ?? ?? … … … MOV AL, [BCD1]ADD AL, [BCD2]DAAMOV [BCD3], ALMOV AL, [BCD1+1]ADC AL, [BCD2+1]DAAMOV [BCD3+1], AL (2) AAA (unpacked BCD [ASCII] adjust for addition) 加法的ASCII码调整 对AL中由两个未组合的BCD数相加的结果进行调整,在AX中得到正确的结果。 MOV AL,06HADD AL,07HAAA 0000 01100000 0111 67 + 0000 1101 调整规则:若(AL AND 0FH )9或AF=1 则 AL+6?ALAH+1?AHAL AND 0FH?AL 所以调整以后 AH=0000 0001 B 1AL=0000 0011 B 3 (3) AAS (unpacked BCD [ASCII] adjust for Subtraction) 减法的ASCII码调整 对AL中由两个未组合的BCD数相减的结果进行调整。 (4) DAS (Decimal Adjust for Subtraction) 对AL中由两个组合的十进制数相减以后的结果进行调整。 减法的十进制调整 (5) AAM (unpacked BCD [ASCII] adjust for multiplication) 能对AX中由两个未组合的十进制数相乘的结果进行调整,得到正确的结果(高位在AH,低位在AL中)。 乘法的ASCII码调整 MOV AL, 08H 8?9=72, 即AL=72=48HMOV BL, 09HMUL BLAAM 调整AL/0AH=48H/0AH= 7?AH (商)2?AL (余数) (6) AAD (unpacked BCD [ASCII] adjust for division) 除法的ASCII码调整 把AX中两位未组合的十进制数在相除之前进行调整,相除之后可以得到正确的结果。 例:MOV AX,0702H;未组合的BCD数72AAD;AH×0AH+AL=7×10+2=72=48H ?AL,0 ?AHMOV BL,09H;除数为9DIV BL;72/9=8 0100 1000 1001 1000?AL ... 0?AH 算术运算指令小结 指令类型 指令格式 指令功能 状态标志位 加法 减法 乘法 ADC 目标, 源 ADC 目标, 源 INC 目标 SUB 目标, 源 SBB 目标, 源 DEC 目标 NEG 目标 CMP目标, 源 MUL 源 IMUL 源 加法(字节/字) 带进位加法(字节/字) 加1(字节/字) 减法(字节/字) 带借位减法(字节/字) 减1 (字节/字) 取补 比较 不带符号乘法(字节/字) 带符号整数乘法(字节/字) O S Z A P C ? ? ? ? ? ? ? 注: ? 运算结果影响标志位 ? 标志位为任意值 ? 运算结果不影响标志位 “ 1” 将标志位置1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 ? ? ? ? ? ? ? * * * * ? ? * * * * ? 算术运算指令小结 指令类型 指令格式 指令功能 状态标志位 除法 十进制调整 DIV 源 IDIV 源 CBW CWD AAA DAA AAS DAS AAM AAD 不带符号除法(字节/字) 带符号整数除法(字节/字) 字节转换成字 字转换成双字 加法的ASCII 码调整 加法的十进制调整 减法的ASCII 码调整 减法的十进制调整 O S Z A P C 注: ? 运算结果影响标志位 ? 标志位为任意值 ? 运算结果不影响标志位 “ 1” 将标志位置1 乘法的ASCII 码调整 除法的ASCII 码调整 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
文档评论(0)