欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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