汇编 16进制数转换2进制数输出

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:32:08
要求简单一点,不要用子程序段,像新手编的一样就好

; 本程序通过编译,运行正确。

Data Segment
SixteenBits DW 12345
Data Ends

Code Segment
Assume CS:Code,DS:Data

Start: mov ax,Data ;取数据段地址
mov ds,ax ;赋给数据段寄存器ds
mov ax,SixteenBits
push cs
pop ds
lea di,binary ;二进制字符串首地址
mov cx,16 ;移位次数
cld
push di

; 转换成二进制字符串
Shift_Left: sal ax,1 ;算术左移
jc Carry_Yes ;有进位,跳转
mov byte ptr [di],'0' ;无进位
jmp Next_Bit
Carry_Yes: mov byte ptr [di],'1' ;有进位
Next_Bit: inc di
loop Shift_Left

mov byte ptr [di],'$' ;字符串结束符
pop dx

; 显示二进制字符串
mov ah,9
int 21h

Exit_Proc: MOV AX,4C00H ;结束程序
INT 21H

binary:

Code ENDS
END Start ;编译到此结束