sy33.asm
来自「用汇编语言实现除法功能」· 汇编 代码 · 共 49 行
ASM
49 行
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 + =
减小字号Ctrl + -
显示快捷键?