我刚开始学习汇编,很多不懂,下面这个是十进制转十六进制的汇编程序,能正确运行,但是有很多地方不懂,谁能帮忙解释下代码.
data segment
str db 0ah,0dh
num db 4 dup(?),'H$'
tab db '0123456789ABCDEF'
data ends
code segment
assume cs:code,ds:data
begin: mov ax,data
mov ds,ax
xor bx,bx
mov cx,10
next: mov ah,1
int 21h
cmp al,0dh
jz conv
push ax
mov ax,bx
mul cx
mov bx,ax
pop ax
and al,0fh
xor ah,ah
add bx,ax
jmp next
conv: mov ax,bx
mov ch,4
lea bx,tab
mov cl,4
lea si,num
lopa: rol ax,cl
push ax
and ax,000fh
mov [si],al
inc si
pop ax
dec ch
jnz lopa
lea dx,str
mov ah,9
int 21h
mov ah,4ch
int 21h
code ends
end begin
顺便帮忙说下该段代码十进制转十六进制的思路吗 麻烦大家了