📄 sy33.asm
字号:
DATA SEGMENT
STRING DB '000C'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
CALL CHANGE
CALL LIST
MOV AH,4CH
INT 21H
CHANGE PROC
LEA SI, STRING
MOV DI,10H
MOV AX,0
MOV CL,4
NEXT: MOV BL,[SI]
SUB BL,30H ;将ASCII码转换为对应数的二进制形式
CMP BL,11H
JB NEXT1
SUB BL,07H
NEXT1: MUL DI ; 将十六进制数转换为对应的二进制数
MOV BH,0
ADD AX,BX
INC SI
LOOP NEXT
RET
CHANGE ENDP
LIST PROC
MOV CL,0
MOV CH,0
MOV DI,10
NEXT2: MOV DX,0
DIV DI ;将二进制数除以十后,将其商继续除以十,直到商为零
PUSH DX ;将每次的余数存入堆栈
INC CL
CMP AX,0
JNZ NEXT2
NEXT3: POP DX ;将每次的余数弹出堆栈
ADD DX,30H ;显示十进制数
MOV AH,2H
INT 21H
LOOP NEXT3
RET
LIST ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -