我不明白这个汇编程序怎么错了?
STAC SEGMENTDB 6 DUP(?)
STAC ENDS
DATA SEGMENT
BUFFER DB 6 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STAC
START:
MOV DX,0
MOV BL,2
LEA DI,BUFFER
INPUT:
MOV AH,01H
INT 21H ;输入第一个字符
SUB AL,30H ;将输入的数字减去30h
JL EXIT
CMP AL,0AH
JA EXIT
CMP BL,1
JE NEXT1
PUSH BX
MOV BL,10
MUL BL ;十位上数乘以10
POP BX
MOV [DI],AL
DEC BL
JNZ INPUT
NEXT1:
MOV BX,2
ADD [DI],AL
NEXT3:
MOV AL,[DI]
CMP BX,2
JL NEXT2
MOV CX,4
SHL AL,CL ;左移四位,相当于:0000 xxxx (xxxx表对应原高四位二进制数)
NEXT2:
AND AL,0FH
MOV DL,AL
MOV AH,02H
INT 21H ;输出DL中内容
DEC BX
JNZ NEXT3
EXIT:
CODE ENDS
END START
;贴上我的操作提示,我的是64位CPU难道这也有影响?
[bo]补充一下:从键盘输入一个两位数(必需是数字),然后将这个两位数以对应十六进制输出。如:输入 45 (0010 1101),则输出为 2D(对应为十进制数)。[/bo]
[[it] 本帖最后由 ensky_cy 于 2008-10-26 00:14 编辑 [/it]]