Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fib:
- cmp.w #0:16, R7
- BEQ end
- add.l ER4,ER3 ;n1 = n1+n2
- mov.l ER3,ER2 ;n3 = n1
- mov.l ER4, ER3 ;n1 = n2
- mov.l ER2, ER4 ;n2 = n3
- dec.w #1, R7 ;counter--
- push.l ER2
- jmp @print
- jmp @fib
- print:
- pop.l ER5 ; cislo, ktere zobrazime vybereme ze zasobniku
- xor.l ER6, ER6 ; vynulovani registru E6
- divide:
- mov.w #10, R6 ; do registru R6 dame cislo 10
- divxu.w R6, ER5 ; vydeleni cisla cislem 10 se zbytkem
- push.w E5 ; ulozeni zbytku do zasobniku
- xor.w E5, E5 ; smazani zbytku
- inc.w #1, E6 ; pridano jedno cislo -> zvysit pocitadlo
- cmp #0:16, R5 ; pokud vysledek neni 0 vrat se na divide.
- bne divide:16
- ; priprava vypisu vysledku
- mov.w #PUTC,R0
- mov.l #par_out, ER1
- char:
- pop.w R6 ; vezmi horni cislo ze zasobniku
- add.w #0x30, R6 ; preved na ASCII cislo prictenim '0'
- mov.b R6L, @output ; uloz do pameti
- jsr @syscall ; vytiskni pamet
- dec.w #1, E6 ; sniz pocitadlo mist
- cmp.w #0:16, E6 ; pokud je pocitadlo na nule -> skonci
- beq newline:16
- jmp @char ; jinak pokracuj dal od char
- newline:
- mov.w #0x0A:16, R6 ; vypis odradkovani
- mov.b R6L, @output
- jsr @syscall
- ;pop.l ER5 ; vrat uschovanou hodnotu ze zasobniku do ER5
- jmp @fib
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement