gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
version 0.81
[asm2wsl.git] / samples / fakt.asm
1 ; Evolucija Softvera
2 ; Racunanje faktoriela pomocu sateka i sabiranja
4 .286
5 .model small
7 sseg segment stack
8 db 256 dup (?)
9 sseg ends
11 .data
12 n dw 5 ; racunamo faktoriel od 7
13 niz db 5,4,3,2,1
15 .code
16 mov dx, @data
17 mov ds, dx
18 ; Direktno indeksno - pomocu labela[DI] i labela[SI]
19 ;rezultat u dx
20 mov ax, 0
21 mov bx, 0
22 mov cx,0
23 mov dx,0
24 mov dl, niz[bx] ;ubacuje najveci clan n koji ce biti sabran n-1 put
25 inc bx ;krece od drugog clana
27 petlja:
28 mov cl, niz[bx] ; citaj clan niza
29 cmp cx,1 ; da li je ax=1?
30 je kraj ; ako jeste, idi na kraj
32 ubaci: ;ubacuje na stek prethodni rezultat n-1 put
33 cmp cx,1
34 je pom
35 push dx
36 dec cx
37 jmp ubaci
39 pom:
40 mov cl, niz[bx] ;uzima vrednost da koliko puta skida sa steka
42 mnozenje:
43 cmp cx,1
44 je sledeci
45 pop ax
46 add dx,ax
47 dec cx
48 jmp mnozenje
50 sledeci:
51 inc bx
52 jmp petlja
54 kraj:
55 print_num dx ;ispisi rezultat na kraju
56 nop
57 end
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner