- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第三章 指令系统
AAA ;将AL中的和调整为拆开型BCD数 调整方法: 若AF=1或(AL)3~0为A~F,则(AL)+06H,并将 (AL)7~4清零;若AF=1,则将AF的值送CF,同时使 (AH)+1。 使用:先求和,后调整;和存放在AL中。 如:MOV AL,02H ;拆开型BCD数 MOV BL,09H ;拆开型BCD数 ADD AL,BL ;和送AL AAA ;AL中为拆开型BCD数 AAS ;将AL中的差调整为拆开型BCD数 调整方法: 若AF=1或(AL)3~0为A~F,则(AL)-06H,并将 (AL)7~4清零;若AF=1,则将AF的值送CF,同时使 (AH)-1 使用:先求差,后调整;差存放在AL中。 如:MOV AL,02H ;拆开型BCD数 MOV BL,09H ;拆开型BCD数 SUB AL,BL ;差送AL AAS ;AL中为拆开型BCD数 AAM ;将AL中的积调整为拆开型BCD数 调整方法:(二进制数转换为十进制数的方法) (AL)/0AH 使用:先乘,后调整 如: MOV AL,04H ;拆开型BCD数 MOV BL,06H ;拆开型BCD数 MUL BL ;(AL)*BL AX(AH:AL) AAM ;(AL)/0AH 商 AH(高位BCD码) 余数 AL(低位BCD码) 商 AH(高位BCD码) 余数 AL(低位BCD码) 积 AAD ;调整AX中的被除数,商即为拆开型BCD数 调整方法(十进制数转换为二进制数方法) (AH)*0AH+(AL) AL,0 AH 使用:先调整,后除 如: MOV AX,0204H ;被除数为2位拆开型BCD数 MOV BL,06H ;除数为1位拆开型BCD数 AAD ;(AH)*0AH+(AL) AL,0 AH DIV BL ;(AX)/(BL) 商 AL(1位拆开型BCD数) 余数 AH BCD码运算编程举例 例1 求组合BCD数1283+2574=3857 DATA SEGMENT BCD1 DB 83H,12H BCD2 DB 74H,25H BCD3 DB ?,? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AL,BCD1 ADD AL,BCD2 DAA ;调整,(AL)=57H MOV BCD3,AL ;存和的底字节 MOV AL,BCD1+1 ADC AL,BCD2+1 DAA ;调整,(AL)=38H MOV BCD3+1,AL ;存和的高字节 HLT CODE END END START BCD 数运算编程练习: (1) 两个ASCII码数(7-5)相减 MOV AL, ’7’ ;37H SUB AL, ’5’ ;37H-35H AAS ;调整,(AL)=02H 逻辑运算与移位指令 这类指令包括与、或、非、异或、测试和左移、右移、循环左/右移指令。除NOT外,都影响某些标志位。其他逻辑指令使OF=CF=0,并根据结果按定义影响 ZF、SF 和 PF。 逻辑与/或/异或指令AND/OR/XOR 格式:AND/OR/XOR OP1, OP2 reg,reg/mem/imm mem,reg/imm 功能:两操作数按位与、或、异或,结果存入OP1中。 例如:设(AL)=36H (1) AND AL,0FH (
原创力文档


文档评论(0)