微机原理,加法校正AAA算法
答案:2 悬赏:80 手机版
解决时间 2021-11-23 16:42
- 提问者网友:感性作祟
- 2021-11-23 11:25
微机原理,加法校正AAA算法
最佳答案
- 五星知识达人网友:大漠
- 2021-11-23 12:37
AAA(Ascii Adjust After Addition)是ASCII码加调整指令,该指令用于调整AL之值,该值是二个ASCII码字节相加之和。调整规则如下:
1、若AL的低四位大于9,或标志位AF=1,则,AH=AH+1,AL=AL+6,并置AF和CF为1,否则,只置AF和CF为0;
2、清除AL的高四位。
MOV AX,19H
ADD AL,07H
执行之后,AL=20H。此时,虽然AL的低四位不大于9,但标志位AF=1,也就是AL的低四位向高四位有进位,所以,执行AAA指令后,AH=AH+1,AL=AL+6,并置AF和CF为1,然后清除AL的高四位,结果:AH=01H,AL=06H。
1、若AL的低四位大于9,或标志位AF=1,则,AH=AH+1,AL=AL+6,并置AF和CF为1,否则,只置AF和CF为0;
2、清除AL的高四位。
MOV AX,19H
ADD AL,07H
执行之后,AL=20H。此时,虽然AL的低四位不大于9,但标志位AF=1,也就是AL的低四位向高四位有进位,所以,执行AAA指令后,AH=AH+1,AL=AL+6,并置AF和CF为1,然后清除AL的高四位,结果:AH=01H,AL=06H。
全部回答
- 1楼网友:低音帝王
- 2021-11-23 14:02
AAA指令用于对非组合BCD码相加结果进行调整,调整操作仍在AL中进行,调整后的结果在AX中。AAA指令的操作如下:
若(AL)&0FH>9,或AF=1则
(AL)<-(AL)+6
(AF)<- 1
(CF)<-(AF)
(AH)<-(AH)+1
(AL)<-(AL)&OFH
指令执行后,除影响AF和CF标志外,其余标志均无定义。
可以看出:数字 0~9的ASCll码是一种非组合的BCD码,因为其高4位为0011,而低 4 位才是以8421码表示的十进制数,这符合非组合BCD码高 4位无意义(定为 0)的规定,这也是AAA指令又称为ASCll码加法调整指令的原因。
现以两个非组合的十进制数06+07,结果应为非组合的十进制数0103,就其操作过程来说明AAA指令的作用。
0000 0110=06 ;unpacked BCD
+ 0000 0
若(AL)&0FH>9,或AF=1则
(AL)<-(AL)+6
(AF)<- 1
(CF)<-(AF)
(AH)<-(AH)+1
(AL)<-(AL)&OFH
指令执行后,除影响AF和CF标志外,其余标志均无定义。
可以看出:数字 0~9的ASCll码是一种非组合的BCD码,因为其高4位为0011,而低 4 位才是以8421码表示的十进制数,这符合非组合BCD码高 4位无意义(定为 0)的规定,这也是AAA指令又称为ASCll码加法调整指令的原因。
现以两个非组合的十进制数06+07,结果应为非组合的十进制数0103,就其操作过程来说明AAA指令的作用。
0000 0110=06 ;unpacked BCD
+ 0000 0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯