帮忙解释程序语句的意思
以下是程序作用是:16进制数化ASCII码的一般方法(显示内存内容)
MOV SI,0
MOV BL,10
LOP: MOV DL,[SI]
MOV CL,4
SHR DL,CL
CMP DL,0A
JC J1
ADD DL,7 ;这里为什么DL加7
J1: ADD DL,30 ;这里为什么DL加30
MOV AH,2 ;这里为什么AH赋值2
INT 21
MOV DL,[SI]
AND DL,0F ;这里为什么DL和0F相与
CMP DL,0A
JC J2
ADD DL,7
J2: ADD DL,30
MOV AH,2
INT 21
MOV DL,20
MOV AH,2
INT 21
INC SI
DEC BL
JNZ LOP
INT 20
帮忙解释每一条语句的意思,谢谢!
[解决办法]
ADD DL,7 ;这里为什么DL加7
大于10的数的ASCII码值为十六进制数加37H,后面有加30H,所以此处先加7
[解决办法]
J1: ADD DL,30 ;这里为什么DL加30
小于10的十六进制数的ASCII码就是数本身加30H
[解决办法]
AND DL,0F ;这里为什么DL和0F相与 保留低4位,消除高4位