加6调整还是加7调整?
DATAS SEGMENTDATA1 DB 39H
DATA2 DB 26H
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS ; 段地址伪指令:assume 段寄存器:段名,段寄存器:段名
START: MOV AX,DATAS ; 初始化数据段
MOV DS,AX
MOV AL,DATA1 ; 两数相加
ADD AL,DATA2
mov CL,4
SHR AL,CL ;逻辑右移指令
ADD AL,30H ;转换为ASCII码中阿拉伯数字
CMP AL,39H ;是否进位
JBE OK1 ; 低于或等于转移
ADD AL,07H ; 高于则加7调整
OK1: MOV DL,AL ; 输出结果的高位
MOV AH,2
INT 21H
MOV AL,DATA1
ADD AL,DATA2
AND AL,0FH ;去除高四位
ADD AL,30H
CMP AL,39H ;比较指令 根据比较结果不同转向不同的程序段
JBE OK2
ADD AL,07H
OK2: MOV DL,AL ; 输出结果的低位
MOV AH,2
INT 21H
MOV AH,4CH ; 返回操作系统
INT 21H
CODES ENDS
END START ;符号地址 start
该代码段完成两位数相加并输出结果,有一点我不明白的是第十七行,按道理应该是进位了加6调整,而为什么这里是加7调整呢?