Ani to do pameti strkat nemusis, zbyva jeste par nevyuzitych registru
Jinak by stacilo dat po deleni "push dx" a pak si to vyzvednout pomoci "pop dx".
dosseg
model small
stack 100h
.data
Num2HexTable db "0123456789ABCDEF"
DeleniText db "Vysledek deleni je "
DeleniVysledek db "0000h, zbytek "
DeleniZbytek db "0000h.",10,13,"$"
.code
mov ax,@data
mov ds,ax
mov es,ax
; Deleni 7/3
xor dx,dx
mov ax,7
mov bx,3
div bx
; prevod do hexa
mov di,offset DeleniVysledek
mov si,ax
call Num2Hex
mov di,offset DeleniZbytek
mov si,dx
call Num2Hex
; Napsani vysledku
mov dx,offset DeleniText
mov ah,09h
int 21h
; konec
mov ah,4ch
int 21h
; Num2Hex
; Vstup:
; si ... cislo
; di ... kam ulozit vysledek (4 znaky)
; es, ds ... datovy segment
; Vytup:
; di ... ukazuje za posledni znak vysledku
; ax,bx,cx ... nedefinovano
Num2Hex:
cld
mov bx,offset Num2HexTable
mov cx,404h
Num2HexLoop:
rol si,cl
mov ax,si
and al,0fh
xlat
stosb
dec ch
jnz Num2HexLoop
ret
end