05

Post on 24-Oct-2015

5 views 0 download

description

gggg

Transcript of 05

. Î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