📄 decimaltobinary.asm
字号:
;输入宏定义
INPUT MACRO destination
PUSH DX
PUSH AX
MOV AH,0AH
LEA DX,destination
INT 21H
POP AX
POP DX
ENDM
;输出宏定义
PRINT MACRO source
PUSH DX
PUSH AX
MOV AH,9
LEA DX,source
INT 21H
POP AX
POP DX
ENDM
;将字符串转换为十进制数
STRING_TO_DECIMAL MACRO string,strLength,decimal
LOCAL CYCLE
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH BP
XOR BP,BP
XOR BH,BH
MOV SI,strLength
INC SI
MOV DI,10
MOV CX,SI
SUB CX,2
XOR DH,DH
MOV DL,string[SI]
DEC SI
CYCLE:
MOV BL,string[SI]
AND BL,0FHU
XOR BH,BH
MOV AX,BX
MUL DI
ADD BP,AX
MOV AX,DI
MOV DI,10
MUL DI
MOV DI,AX
DEC SI
DEC CX
LOOP CYCLE
MOV decimal,BP
POP BP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
ENDM
;将十进制数年转换为字符串并输出
DECIMAL_TO_STRING MACRO decimal
LOCAL L1,L2,L3
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AX,decimal
MOV CX,10
XOR BX
L1:
CMP AX,0
JE L2
XOR DX,DX
DIV CX
OR DL,30H
PUSH DX
INC BX
JMP SHORT L1
L2:
MOV CX,BX
L3:
POP AX
MOV AH,2
INT 21H
LOOP L3
POP DX
POP CX
POP BX
POP AX
ENDM
DATAS SEGMENT
I_NUMBER DW ?
I_TEST DW ?
BUFFER DB 8,?,8 DUP(?)
C_BNUMBER DB 20 DUP(?)
C_OUT DB 'THE BINARY NUMBER IS:','$'
C_START DB 'PLEASE INPUT THE DECIMAL NUMBER:','$'
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN PROC FAR
MOV AX,DATAS
MOV DS,AX
;输出提示语言
PRINT C_START
;输入数据
INPUT BUFFER
STRING_TO_DECIMAL BUFFER,BUFFER,I_NUMBER
MOV I_TEST,235
;DECIMAL_TO_STRING I_TEST
;此处输入代码段代码
MOV AH,4CH
INT 21H
MAIN ENDP
CODES ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -