You are on page 1of 2

; -----------gp.

asm----------
public n, niz, suma
extrn sab:far
podaci segment
niz dw 2,5,7,38,224
n dw 5
suma dw ?
podaci ends
stek segment
dw 200 dup(?)
iza label word
stek ends
program segment
assume cs:program, ds:podaci, ss:stek
ut: mov ax,podaci
mov ds,ax
mov ax,stek
mov ss,ax
lea sp,iza

Zaj.mem.prost. Registri Stek


;7. slanje (izl. par. po vr.) (izl. par. po (izl. par. po
ulaznih Mov cx, n adresi) vr.) (izl. par. po
parametara Lea si, niz Mov cx,n Push n adresi)
Lea si,niz Lea ax, niz Push n
Lea bx, suma Push ax Lea ax, niz
Push ax
Lea ax, suma
Push ax
;8. skok na call sab -II- --II--
proceduru
;9. (po vr.) (po adresi) (izl. par. po (izl. par. po
preuzimanje Mov suma, ax vr.) adr.)
izl. Pop suma
parametara
mov ah, 4ch
int 21h
program ends
end ut
;-------pp.asm----
extrn n:word
extrn niz:word
extrn suma:word ; byte|dword
public sab
Procedura segment
Sab proc far
assume cs:procedura

Zaj. mem. Registri stek


prost.
;1. Pushf (izl. par. po (izl. Push bp
čuvanje Push cx vrednosti) par. po Mov bp,sp
konteksta Push si Pushf adresi)
procesora Push ax Push cx Pushf Pushf
Push si Push cx Push cx
Push ax Push si Push si
Push ax Push ax
;2 preuz. Mov cx, n (izl. par. po (izl. par. po
ul. par Lea si, niz vrednosti) adresi)
Mov si, [bp+6] Mov si, [bp+8]
Mov cx, [bp+8] Mov cx,
[bp+10]
;3. telo Mov ax,0
proc. Petlja:
Add ax, [si]
Add si, 2
Loop petlja
;4. slanje Mov suma, ax (Po vr.) (po (Po vr.) (po adresi)
izl. par. adresi) Mov [bp+8], ax Mov si, [bp+6]
Mov Mov [si],ax
[bx], ax
;5. obn. Pop ax Pop ax Pop ax Pop ax
konteksta Pop si Pop si Pop si Pop si
proc. Pop cx Pop cx Pop cx Pop cx
popf Popf popf Popf
Pop bp
;6. skok ret ret (izl. par. po vr.) (izl. par. po adr.)
nazad Ret 2 Ret 6
Sab endp
Procedura ends
end

You might also like