?? 4.asm
字號:
;將鍵盤輸入的4位十六進制數轉換成等值的十進制數送屏幕顯示
DATA SEGMENT
MESG1 DB 'You NO. is 0237.',0AH,0DH,'$'
MESG2 DB 'Please input a 4-bit hexadecimal number:',0AH,0DH,'$'
H DB 4 DUP (?)
N DW 10000,1000,100,10,1
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BIG: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET MESG1
MOV AH,9
INT 21H
MOV DX,OFFSET MESG2 ;顯示提示信息Please input a 4-bit hexadecimal number:
MOV AH,9
INT 21H
DISP MACRO NNN
MOV AH,0EH; 打字方式顯示字符。
MOV AL,NNN
INT 10H ; BIOS 10號功能調用
ENDM
;接收鍵盤輸入合法的4個十六進制字符存于H存儲區,高位在低地址。
MOV DI,OFFSET H
MOV CX,4
L1: MOV AH,07H
INT 21H
CMP AL,'0'
JB L9
CMP AL,'9'
JA L2
MOV DL,AL
MOV AH,02H
INT 21H
MOV [DI],AL
INC DI
JMP L3
L2: CMP AL,'A'
JB L9
CMP AL,'F'
JA L9
MOV DL,AL
MOV AH,02H
INT 21H
MOV [DI],AL
INC DI
JMP L3
L9:DISP 7
JMP L1
L3: LOOP L1
MOV DL,'H' ;輸出'H'字符
MOV AH,02H
INT 21H
MOV DL,'=' ;輸出'='字符
MOV AH,02H
INT 21H
;將4位十六進制字符轉換成二進制數存于BX
XOR BX,BX
MOV CX,4
MOV SI,OFFSET H
L4: SHL BX,4
LODSB
CMP AL,'A'
JB L5
SUB AL,07H
L5: SUB AL,30H
OR BL,AL
LOOP L4
;將BX中的二進制字數據轉換成十進制數并顯示在屏幕上
MOV SI,OFFSET N
MOV CX,5
L6: LODSW
XOR DL,DL
L7: SUB BX,AX
JC L8
INC DL
JMP L7
L8: ADD BX,AX
MOV AH,02H
ADD DL,30H ;將數轉換成ASC碼
INT 21H
LOOP L6
MOV AH,4CH
INT 21H
CODE ENDS
END BIG
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -