document05

1
. Împartirea fara semn a unui deimpartit de 32 biti la un impartitor de 16 biti dseg segment para public 'data' deimpartit dq 12345678FFFFFFFFh divizor dw 16 cat dq 0 rest dw ? ; cat va fi: 0123 4567 8FFF FFFF H, restul 00 0F H dseg ends cseg segment para public 'code' ; impartirea unei valori de 64 de biti la una de 16 biti assume cs:cseg, ds:dseg div64 proc mov ax, dseg ; initializare registru segment mov ds, ax mov ax, word ptr deimpartit[6] sub dx, dx ; impartire (DX,AX)/divizor -> (DX,AX)=(rest, cat) div divizor mov word ptr cat[6], ax ; primul cat, cel mai semnificativ se depune la cat[6] mov ax, word ptr deimpartit[4] div divizor ; continua impartirea: (DX=rest anterior,AX=cifra urmatoare) mov word ptr cat[4], ax ; si se depune urmatorul cat, la cat[4] mov ax, word ptr deimpartit[2] div divizor mov word ptr cat[2], ax mov ax, word ptr deimpartit div divizor ; ultima impartire mov word ptr cat, ax ; se depune ultimul cat mov rest, dx ; si restul mov ax, 4c00h int 21h div64 endp cseg ends sseg segment para stack 'stack' dw 128 dup(?) sseg ends end div64

Upload: irinarm

Post on 24-Oct-2015

4 views

Category:

Documents


0 download

DESCRIPTION

gggg

TRANSCRIPT

Page 1: Document05

. Împartirea fara semn a unui deimpartit de 32 biti la un impartitor de 16 bitidseg segment para public 'data'deimpartit dq 12345678FFFFFFFFhdivizor dw 16cat dq 0rest dw ? ; cat va fi: 0123 4567 8FFF FFFF H, restul 00 0F H

dseg ends

cseg segment para public 'code'; impartirea unei valori de 64 de biti la una de 16 biti

assume cs:cseg, ds:dsegdiv64 proc

mov ax, dseg ; initializare registru segmentmov ds, axmov ax, word ptr deimpartit[6]sub dx, dx ; impartire (DX,AX)/divizor -> (DX,AX)=(rest, cat)div divizormov word ptr cat[6], ax ; primul cat, cel mai semnificativ se depune la cat[6]mov ax, word ptr deimpartit[4]div divizor ; continua impartirea: (DX=rest anterior,AX=cifra urmatoare)mov word ptr cat[4], ax ; si se depune urmatorul cat, la cat[4]mov ax, word ptr deimpartit[2]div divizormov word ptr cat[2], axmov ax, word ptr deimpartitdiv divizor ; ultima impartiremov word ptr cat, ax ; se depune ultimul catmov rest, dx ; si restulmov ax, 4c00hint 21h

div64 endpcseg endssseg segment para stack 'stack'

dw 128 dup(?)sseg endsend div64