关于汇编程序的问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:31:53
求用汇编写的一个从十进制转换到十六进制的程序段.
比如说255d=FFh , 16d=10h , 79d=4Fh
而这个程序段要把AX中的十进制数转换为BX中的十六进制数.
比如:AX=0255H,转换后BX=00FFH (255d=FFh)
AX=16H,转换后BX=10H (16d=10h)
AX=79H,转换后BX=4FH (79d=4Fh)
AX中的数其实都是十进制的.(不含"A-F")

这个是在8086虚拟环境下运行的
dtohex segment
assume cs:dtohex
main proc far
push ds
xor ax,ax//将返回操作系统的值先保存下来
push ax
call dtob//调用子程序,根据是近还是远调用将ip或者ip,cs
//值压栈
call crlf//调用子程序
call btoh//调用子程序
ret
main endp
--------------------------------------------------------------------以上是主函数
dtob proc near
mov bx,0
input: mov ah,1
int 21h
sub al,30h
jl exit
cmp al,9
jg exit
cbw
xchg ax,bx//将ax中的值和bx中的进行交换
mov cx,10
mul cx
xchg ax,bx
add bx,ax
jmp input
exit:ret
dtob endp
-------------------------------------------------十进制数转换成二进制

btoh proc near
mov ch,4
shift: mov cl,4
rol bx,cl
mov al,bl
and al,0fh