汇编 二进制转换成十六进制



将一个16位的二进制数转换成十六进制数
程序如下:
data segment
number dw 1101010110100000b
data ends

code segment
assume cs:code,ds:data
main proc far
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov bx,number
mov ch,4
rotate:mov cl,4

rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl printit
add al,7h
printit:
mov dl,al
mov ah,2
int 21h
dec ch
jnz rotate
ret
main endp
code ends
end
编译通过了...但是结果不对...哪出毛病了...
参考一下吧
.model small
.stack
.data
.code
.startup
mov bx,1101010110100000b

mov cx,0004
next: push cx ;保护循环的次数旦橘
mov cx,0004 ;逻辑左移4位肢羡
rol bx,cl
mov dl,bl
and dl,0fh
cmp dl,09h ;判断dl是模饥团否大于9
jle next1 ;dl<=9时就跳到next1
add dl,07h
next1: add dl,30h
mov ah,2
int 21h
pop cx
loop next
.exit
end
不好意思,好象没有错误吧?