古詩詞大全網 - 成語用法 - CMP:CMP DL,39H 為什麽和39h比較那,39h又是什麽,這樣有什麽用?

CMP:CMP DL,39H 為什麽和39h比較那,39h又是什麽,這樣有什麽用?

我給妳的程序加上了註釋,妳可以看哈!應該就會了,妳說的後面壹部分和前面的是壹樣的!30H是0的ASCII碼的16進制形式,算法比較簡單的,為了便於顯示而加上了30H。39H就是9的ASCII碼的16進制數!\x0d\\x0d\.MODEL SMALL \x0d\.CODE \x0d\ASC PROC FAR \x0d\PUSH DS \x0d\XOR AX,AX \x0d\PUSH AX \x0d\MOV AH,1 \x0d\INT 21H ;調用1號中斷輸入ASCII碼\x0d\\x0d\MOV DL,AL \x0d\MOV BL,AL ;AL裏面是輸入的\x0d\\x0d\MOV CL,4 \x0d\SHR DL,CL;右移4位,去掉高4位,就是10進制數轉化為16進制的算法4位4位\x0d\;轉化\x0d\ADD DL,30H ;加上30H便於顯示,在這裏的判斷也可以與9的比較而不加30H\x0d\CMP DL,39H ;39H是9的ASCII碼的16進制形式\x0d\JLE L1 ;跳說明它小於等於9,可以直接顯示了\x0d\ADD DL,07H ;加7就變成A B C D E F等值 \x0d\;後面的就是處理低位了,算法是壹樣的\x0d\L1: MOV AH,2 \x0d\INT 21H \x0d\MOV DL,BL \x0d\AND DL,0FH \x0d\ADD DL,30H \x0d\CMP DL,39H \x0d\JLE L2 \x0d\ADD DL,7 \x0d\L2: MOV AH,2 \x0d\INT 21H \x0d\RET \x0d\ASC ENDP \x0d\END ASC