ConversionOfNumberSystems
程序员文章站
2022-03-12 09:15:21
;子程序说明:;子程序名:ConversionOfNumberSystems;功能:可实现实现无符号数(! = 0)二、八、十、十六进制输出子程序, 使用递归调用方式实现;入口参数:; AX为要转换的数;; BX为对应进制(2,8,10,16); ;使用寄存器:AX, BX, CX, DX;示例:要在屏幕输出255的二进制数,则令AX=255,BX=2,调用子程序后,屏幕输出11111111.ConversionOfNumberSystems PROC...
;子程序说明:
;子程序名:ConversionOfNumberSystems
;功能:可实现实现无符号数(! = 0)二、八、十、十六进制输出子程序, 使用递归调用方式实现
;入口参数:
; AX为要转换的数;
; BX为对应进制(2,8,10,16);
;使用寄存器:AX, BX, CX, DX
;示例:要在屏幕输出255的二进制数,则令AX=255,BX=2,调用子程序后,屏幕输出11111111.
ConversionOfNumberSystems PROC
PUSH CX ;DX入栈
PUSH DX ;DX入栈
MOV CX,0 ;CX清零
MOV DX,0 ;DX清零
CMP AX,0 ;AX是否为0
JZ FINISH ;是,则完成
DIV BX ;不是,则除以进制数
CALL ConversionOfNumberSystems;递归调用
ADD DL,30H ;加30H,即转换成ASCII
CMP DL,39H ;对于十六进制,比较是否大于‘A’
JBE DISPLAY;不是,则转移
ADD DL,7 ;是,则再加7
DISPLAY:
PUSH AX
MOV AH,02H
INT 21H ;输出当前转换结果
POP AX
FINISH:
POP DX ;DX出栈
POP CX ;CX出栈
RET
ConversionOfNumberSystems ENDP
本文地址:https://blog.csdn.net/m0_47423026/article/details/107134252