sy4.asm

来自「从键盘输入并显示实验」· 汇编 代码 · 共 89 行

ASM
89
字号

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 + =
减小字号Ctrl + -
显示快捷键?