📄 sy4.asm
字号:
DATA SEGMENT
MESS1 DB 'Please input Hexadecimal number',0DH,0AH,'$'
MESS2 DB 'Input error',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,09H
MOV DX,OFFSET MESS1
INT 21H
CALL GETNUM
MOV CX,16
R: ROL BX,1
MOV DL,BL
AND DL,01H
ADD DL,30H
MOV AH,2
INT 21H
LOOP R
STOP: MOV AH,4CH
INT 21H
GETNUM proc near
MOV BX,0
MOV CX,0
NEW: PUSH CX
MOV AH,1
INT 21H
CMP AL,0DH
JZ CRLF
CMP AL,30H
JB WRONG
CMP AL,39H
JBE ADDTO1
CMP AL,41H
JB WRONG
CMP AL,46H
JBE ADDTO2
CMP AL,61H
JB WRONG
CMP AL,66H
JBE ADDTO3
JA WRONG
ADDTO1:SUB AL,30H
JMP ADDTO
ADDTO2:SUB AL,37H
JMP ADDTO
ADDTO3:SUB AL,57H
JMP ADDTO
ADDTO: MOV CL,4
SHL BX,CL
MOV AH,0
ADD BX,AX
POP CX
INC CX
CMP CX,4
JNZ NEW
JMP CRLF
WRONG: LEA DX,MESS2
MOV AH,9
INT 21H
JMP NEW
CRLF: mov ah,2
mov dl,0dh
int 21h
mov ah,2
mov dl,0ah
int 21h
ret
getnum endp
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -