You are on page 1of 2

F:\My ASM CODE\[ASM] fibonacci.

asm Thursday, March 31, 2011 9:42 AM

1 # Tinh so thu n trong day fibonnaci


2 # By huahongquan2007
3 #-----------------------------------------------------------------------
4 .data
5 yeu_cau:
6 .asciiz "Hay nhap 1 so n > 0 "
7 nhap_sai:
8 .asciiz "Ban nhap so sai yeu cau "
9 output:
10 .asciiz "Fib(n) = "
11 .text
12 main:
13 la $a0,yeu_cau # Xuat ra dong yeu_cau
14 addi $v0,$0,4 # PRINT STRING
15 syscall
16
17 addi $v0,$0,5 # READ INTEGER N
18 syscall
19
20 slt $t1,$v0,$0
21 beqz $t1,so_duong
22
23 la $a0,nhap_sai # Xuat ra dong nhap_sai
24 addi $v0,$0,4 # PRINT STRING
25 syscall
26 j exit
27
28 so_duong:
29 addi $a0,$v0,0 # $a0 = $v0 = n
30 jal find_fib
31 addi $t0,$v0,0
32
33 la $a0,output # Xuat ra dong output
34 addi $v0,$0,4 # PRINT STRING
35 syscall
36
37 addi $a0,$t0,0
38 addi $v0,$0,1 # PRINT INTEGER
39 syscall
40 exit:
41 addi $v0,$0,10
42 syscall
43 #-----------------------------------------------------------------------
44 # FIND_FIB: TIM SO THU N TRONG DAY FIBONACCI, TA CO F1 = F2 = 1
45 # $t0 : Luu gia tri gan cuoi
46 # $v0 : Luu gia tri cuoi cung tinh duoc
47 #-----------------------------------------------------------------------
48 find_fib:
49 addi $v0,$0,1 # neu n = 1 hay n = 2 thi f(n) = 1
50 slti $t2,$a0,3
51 bnez $t2,done_fib
52
53 addi $t0,$0,1 # Luu gia tri gan cuoi =1
54 Loop:
55 add $t1,$t0,$v0 # Tinh gia tri ke tiep
56 addi $t0,$v0,0 # Gia tri gan cuoi truoc duoc thay bang gia tri cuoi cua lan tinh
truoc
57 addi $v0,$t1,0 # Gia tri vua tinh duoc luu vao "gia tri cuoi"

-1-
F:\My ASM CODE\[ASM] fibonacci.asm Thursday, March 31, 2011 9:42 AM

58 addi $a0,$a0,-1 # Giam tri so cua n xuong 1


59
60 slti $t2,$a0,3 # Neu n < 3 thi ket thuc vong lap
61 bnez $t2,done_fib
62 j Loop
63 done_fib:
64 jr $ra

-2-

You might also like