注册 登录
编程论坛 汇编论坛

汇编程序CMP指令的用法问题

djl344066722 发布于 2007-05-17 18:34, 4255 次点击
CMP有很多比较我很是不明白,希望那位大虾教教我
比如说:CMP DL,39H 为什么和39h比较那,39h又是什么,这样有什么用?
然后如果大于顺序执行,小于者跳转,加7那?比如说最下面那几行,如果小于的话,就不会跳转到输出函数L2那么即使加7又有什么用那?
参考程序如下(输入一个字符,以十六进制形式显示它的ASCII码)

.MODEL SMALL
.CODE
ASC PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AH,1
INT 21H
MOV DL,AL
MOV BL,AL
MOV CL,4
SHR DL,CL
ADD DL,30H
CMP DL,39H
JLE L1
ADD DL,07H
L1: MOV AH,2
INT 21H
MOV DL,BL
AND DL,0FH
ADD DL,30H
CMP DL,39H
JLE L2
ADD DL,7
L2: MOV AH,2
INT 21H
RET
ASC ENDP
END ASC
3 回复
#2
菜鸟上路2007-05-17 20:34
39就是字符'9',当然和39H比较啦,16进制不是分为0-9和A-F吗!
#3
爱以走远2007-05-17 20:53
39h是9的ASCII码哈 呵呵 当然就是和他比较拉 加7你自己想想嘛 也是ASCII的问题
呵呵 A的ASCII是41H 呵呵
#4
I喜欢c2007-05-17 23:09
就是显示字符嘛...

先判断它是不是字符
1