Advertisement
Guest User

Untitled

a guest
May 16th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. fib:
  2.         cmp.w   #0:16, R7
  3.         BEQ     end
  4.        
  5.         add.l   ER4,ER3 ;n1 = n1+n2
  6.         mov.l   ER3,ER2 ;n3 = n1
  7.        
  8.         mov.l   ER4, ER3    ;n1 = n2
  9.         mov.l   ER2, ER4    ;n2 = n3
  10.        
  11.         dec.w   #1, R7  ;counter--
  12.        
  13.         push.l ER2
  14.        
  15.         jmp @print
  16.        
  17.         jmp     @fib
  18. print:
  19.         pop.l   ER5             ; cislo, ktere zobrazime vybereme ze zasobniku
  20.         xor.l   ER6, ER6            ; vynulovani registru E6
  21. divide:
  22.         mov.w   #10, R6         ; do registru R6 dame cislo 10
  23.         divxu.w R6, ER5         ; vydeleni cisla cislem 10 se zbytkem
  24.         push.E5              ; ulozeni zbytku do zasobniku
  25.         xor.w   E5, E5          ; smazani zbytku
  26.                
  27.         inc.w   #1, E6          ; pridano jedno cislo -> zvysit pocitadlo
  28.                
  29.         cmp     #0:16, R5       ; pokud vysledek neni 0 vrat se na divide.
  30.         bne     divide:16
  31.  
  32.                                 ; priprava vypisu vysledku
  33.         mov.w   #PUTC,R0
  34.         mov.l   #par_out, ER1
  35.                
  36. char:  
  37.         pop.w   R6              ; vezmi horni cislo ze zasobniku
  38.  
  39.         add.w   #0x30, R6       ; preved na ASCII cislo prictenim '0'
  40.         mov.b   R6L, @output    ; uloz do pameti
  41.  
  42.         jsr     @syscall        ; vytiskni pamet
  43.         dec.w   #1, E6          ; sniz pocitadlo mist
  44.        
  45.         cmp.w   #0:16, E6       ; pokud je pocitadlo na nule -> skonci
  46.         beq     newline:16
  47.        
  48.         jmp     @char           ; jinak pokracuj dal od char
  49.                
  50. newline:
  51.         mov.w   #0x0A:16, R6    ; vypis odradkovani
  52.         mov.b   R6L, @output
  53.         jsr     @syscall
  54.  
  55.         ;pop.l  ER5             ; vrat uschovanou hodnotu ze zasobniku do ER5
  56.  
  57.  
  58.         jmp     @fib
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement