汇编语言编写十进制数到二进制数的进制转换并显示的子程序
2016-11-18 21:53
393 查看
不同进制间转换一直是汇编语言必须要掌握的编程技巧,算法也比较简单:
例如:当其他进制数转为十进制时使用的除十取余法,压入栈中,弹出后实现逆序输出;
当其他进制数转为二进制时使用的除二取余法,压入栈中,弹出后实现逆序输出;
进而扩展:当其他进制数转为R进制时使用的除R取余法,压入栈中,弹出后实现逆序输出;
下面介绍一种比较简便的方法,通过移位指令实现的十进制数到二进制数形式的进制转换程序,
程序使用8086宏汇编MASM5.0编译运行通过!
源代码如下:
assume cs:code
code segment
;主程序
start:
mov al,74h
call binary
mov ax,4c00h
int 21h
;子程序
;功能:通过移位和带进位加法实现的将al中的内容以二进制形式显示
;入口参数:al
;出口参数:无
binary proc near
push bx
push cx
push dx ;保护现场
mov bl,al
mov cx,8 ;循环8次
s: mov dl,30h
shl bl,1
adc dl,0
mov ah,2 ;调用DOS功能调用,显示'0'或'1'
int 21h
loop s
pop dx ;恢复现场
pop cx
pop bx
ret
binary endp
code ends
end start
例如:当其他进制数转为十进制时使用的除十取余法,压入栈中,弹出后实现逆序输出;
当其他进制数转为二进制时使用的除二取余法,压入栈中,弹出后实现逆序输出;
进而扩展:当其他进制数转为R进制时使用的除R取余法,压入栈中,弹出后实现逆序输出;
下面介绍一种比较简便的方法,通过移位指令实现的十进制数到二进制数形式的进制转换程序,
程序使用8086宏汇编MASM5.0编译运行通过!
源代码如下:
assume cs:code
code segment
;主程序
start:
mov al,74h
call binary
mov ax,4c00h
int 21h
;子程序
;功能:通过移位和带进位加法实现的将al中的内容以二进制形式显示
;入口参数:al
;出口参数:无
binary proc near
push bx
push cx
push dx ;保护现场
mov bl,al
mov cx,8 ;循环8次
s: mov dl,30h
shl bl,1
adc dl,0
mov ah,2 ;调用DOS功能调用,显示'0'或'1'
int 21h
loop s
pop dx ;恢复现场
pop cx
pop bx
ret
binary endp
code ends
end start
相关文章推荐
- 汇编语言编写十进制数到二进制数的进制转换并显示的子程序
- 汇编语言编写十进制数到二进制数的进制转换并显示的子程序
- 汇编语言 第三版 王爽 实验10-1 编写子程序 之 显示字符串
- 汇编语言: 编写子程序嵌套结构的程序,把整数分别用二进制和八进制形式显示出来。
- 汇编语言: 试编写一段程序,从键盘接收一个 0-65535 间的十进制无符号数,并在终端上显示与 它等值的二进制数。
- 汇编语言: 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。
- 微机原理==汇编语言编写十进制数到二进制数的进制转换并显示
- 微机原理==汇编语言编写十进制数到二进制数的进制转换并显示(11)
- 3.数值显示-汇编语言(王爽)-实验10 编写子程序
- 微机原理==汇编语言编写十进制数到二进制数的进制转换并显示
- 汇编语言: 试编写一段程序,从键盘接收一个-32768-32767 间的十进制有符号数,并在终端上 显示与它等值的二进制数。
- 汇编语言: 试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则 显示“NO MATCH”。
- 汇编语言(王爽)--实验10编写子程序
- 汇编语言: 编写一个程序,从键盘输入一个不长于8位的四进制数,并将所输入的数以10进制数 形式显示出来。
- 汇编语言: 编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制 和四进制数形式显示出所输入的数。
- 汇编语言: 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来
- 2.解决除法溢出问题-汇编语言(王爽)-实验10 编写子程序
- 汇编语言(王爽)实验十 编写子程序
- 汇编语言数值显示 的子程序dtoc.asm
- 汇编语言中编写子程序的标准框架及简单运用举例