求步骤,求完整解析!高人们速度点、、万分感谢!!!
转换成格雷码、、
数字0-9字符对应的格雷码为:18H,31H,05H,06H,09H,0AH,0CH,11H,12H,14H
需要显示啊
;----------------------------------------------
DATA SEGMENT ;数据段.
GR DB 18H, 31H, 05H, 06H, 09H
DB 0AH, 0CH, 11H, 12H, 14H
ASC DB '0123456789ABCDEF'
MSG1 DB 13, 10, 'Please input a num (0~9) : $'
MSG2 DB 13, 10, 'The GR code is : $'
MSG3 DB 13, 10, 'Oh ! my god ! $'
DATA ENDS
;----------------------------------------------
CODE SEGMENT ;代码段.
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
;------------------------------
MOV DX, OFFSET MSG1
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
MOV AH, 1 ;1号功能调用,键入、显示.
INT 21H ;
CMP AL, '0'
JB ERR
CMP AL, '9'
JBE L1 ;小于等于9转移.
ERR:
MOV DX, OFFSET MSG3
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
JMP EXIT
;------------------------------
L1:
PUSH AX
MOV DX, OFFSET MSG2
MOV AH, 9 ;9号功能调用,显示提示.
INT 21H ;显示.
POP AX
AND AL, 0FH
MOV AH, 0
MOV BX, OFFSET GR
ADD BX, AX
MOV AL, [BX]
;------------------------------
MOV AH, 0
MOV BL, 16 ;
DIV BL
PUSH AX
MOV AH, 0
MOV BX, OFFSET ASC
ADD BX, AX
MOV DL, [BX]
MOV AH, 2
INT 21H
;------------------------------
POP AX
MOV AL, AH
MOV AH, 0
MOV BX, OFFSET ASC
ADD BX, AX
MOV DL, [BX]
MOV AH, 2
INT 21H
;------------------------------
MOV DL, 'H'
MOV AH, 2
INT 21H
;------------------------------
EXIT:
MOV AH, 4CH
INT 21H
;------------------------------
CODE ENDS
END START