📄 bcd.asm
字号:
DISPL MACRO
ADD DL,30H
MOV AH,02H
INT 21H
ENDM
CRLF MACRO
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
ENDM
DATA SEGMENT
DATA1 DB 01001000B ;48H
DATA2 DB 01110101B ;75H
RESULT DW ?
DATA ENDS
STACK SEGMENT
STA DB 20 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MOV DI,OFFSET RESULT
MOV SI,OFFSET DATA1
MOV AH,[SI]
MOV CL,04
SHR AH,CL
MOV DL,AH
DISPL
MOV AL,[SI]
MOV BL,AL
AND AL,00001111B
MOV DL,AL
DISPL
CRLF
MOV SI,OFFSET DATA2
MOV AH,[SI]
MOV CL,04
SHR AH,CL
MOV DL,AH
DISPL
MOV AL,[SI]
AND AL,00001111B
MOV DL,AL
DISPL
CRLF
XOR DX,DX
S1: CMP BL,0
JZ S2
CLC
MOV AL,[SI]
ADC AL,DL
DAA
MOV DL,AL
MOV AL,00H
ADC AL,DH
DAA
MOV DH,AL
MOV AL,BL
DEC AL
DAS
MOV BL,AL
JMP S1
S2: MOV [RESULT],DX
MOV SI,DX
MOV CL,04
SHR DH,CL
MOV DL,DH
DISPL
MOV DX,SI
AND DH,00001111B
MOV DL,DH
DISPL
MOV DX,SI
MOV CL,04
SHR DL,CL
DISPL
MOV DX,SI
AND DL,00001111B
DISPL
CRLF
S3: MOV AX,4C00H
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -