Code assembly: Nhập vào số thập phân, đổi ra số thập lục phân.

Nhập vào số thập phân, đổi ra số thập lục phân.


org 100h
begin:
jmp codebegin
n1 db 0dh,0ah,"Nhap vao gia tri trong he 10 :$"
n2 db 0dh,0ah,"Chuoi thap luc phan cua gia tri la :$"
n3 db 0dh,0ah,100 dup(?)

codebegin:
l0: mov dx,offset n1
call ThongBaoXuat

mov dx,offset n3
call ThongBaoNhap

mov bl,n3[1]
mov bh,0
mov n3[bx+2],'$'
call XuongHang
call ChuyenChuoiRaSo
cmp dx,012ch
ja l0
call XuongHang
call ChuyenSoRaNhiPhan
mov dx,offset n3+2
call ThongBaoXuat

ChuyenChuoiRaSo Proc
mov cx,bx
mov si,2
xor dx,dx
l1: xor ax,ax
mov al,n3[si]
sub al,30h
mov bl,0ah
mov bh,0
push cx
sub cx,1
cmp cx,0
je l3
l2: mul bl
loop l2
l3: add dx,ax
pop cx
inc si
loop l1
ret
ChuyenChuoiRaSo Endp

ChuyenSoRaNhiPhan proc
mov ax,dx
mov bx,10h
mov si,2
xor cx,cx
l4: xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jnz l4
l5: pop dx
cmp dl,9
je l11
add dl,30h
mov n3[si],dl
jmp l12
l11: add dl,37h
mov n3[si],dl
l12: inc si
loop l5
mov n3[si],'$'
ret
ChuyenSoRaNhiPhan Endp

XuongHang Proc
push ax
push dx
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
pop dx
pop ax
ret
XuongHang Endp

ThongBaoNhap Proc
mov ah,0ah
int 21h
ret
ThongBaoNhap Endp

ThongBaoXuat Proc
mov ah,09h
int 21h
ret
ThongBaoXuat Endp

int 20h 

ends code 
end begin

;

Chúc các bạn thành công!