[asm] fibonacci

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-

Upload: huahongquan2007

Post on 28-Mar-2015

189 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: [ASM] fibonacci

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

1 # Tinh so thu n trong day fibonnaci2 # By huahongquan20073 #-----------------------------------------------------------------------4 .data5 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 .text12 main:13 la $a0,yeu_cau # Xuat ra dong yeu_cau14 addi $v0,$0,4 # PRINT STRING15 syscall16 17 addi $v0,$0,5 # READ INTEGER N18 syscall19 20 slt $t1,$v0,$021 beqz $t1,so_duong22 23 la $a0,nhap_sai # Xuat ra dong nhap_sai24 addi $v0,$0,4 # PRINT STRING25 syscall26 j exit27 28 so_duong:29 addi $a0,$v0,0 # $a0 = $v0 = n30 jal find_fib31 addi $t0,$v0,032 33 la $a0,output # Xuat ra dong output34 addi $v0,$0,4 # PRINT STRING35 syscall36 37 addi $a0,$t0,038 addi $v0,$0,1 # PRINT INTEGER39 syscall40 exit:41 addi $v0,$0,1042 syscall43 #-----------------------------------------------------------------------44 # FIND_FIB: TIM SO THU N TRONG DAY FIBONACCI, TA CO F1 = F2 = 145 # $t0 : Luu gia tri gan cuoi46 # $v0 : Luu gia tri cuoi cung tinh duoc47 #-----------------------------------------------------------------------48 find_fib:49 addi $v0,$0,1 # neu n = 1 hay n = 2 thi f(n) = 150 slti $t2,$a0,351 bnez $t2,done_fib52 53 addi $t0,$0,1 # Luu gia tri gan cuoi =154 Loop:55 add $t1,$t0,$v0 # Tinh gia tri ke tiep56 addi $t0,$v0,0 # Gia tri gan cuoi truoc duoc thay bang gia tri cuoi cua lan tinh

truoc57 addi $v0,$t1,0 # Gia tri vua tinh duoc luu vao "gia tri cuoi"

-1-

Page 2: [ASM] fibonacci

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 159 60 slti $t2,$a0,3 # Neu n < 3 thi ket thuc vong lap61 bnez $t2,done_fib62 j Loop63 done_fib:64 jr $ra

-2-