Thực hành buổi 4 Lab04

Một phần của tài liệu BÁO cáo TỔNG kết môn THỰC HÀNH KIẾN TRÚC máy TÍNH – CE119 mô phỏng các chương trình bên dưới và cho biết ý nghĩa của chương trình (Trang 54 - 67)

IV.1. Lý thuyết

IV.1.1. Thủ tục với MIPS

1. Chuẩn bị đối số

2. Lưu trạng thái

3. Nhảy tới thủ tục

4. Thực thi thủ tục

5. Chuẩn bị kết quả

6. Quay về chương trình chính(tại lệnh kế tiếp) Quy ước:

Thanh ghi đối số: $a0 -$a3

Thanh ghi kết quả: $v0,$v1

Thanh ghi tạm: $t0- $t9

Thanh ghi lưu trữ: $s0 – $s7

Thanh ghi địa chỉ trả về: $ra

Thanh ghi con trỏ ngăn xếp: $sp IV.1.2. Đệ quy

IV.2. Thực hành

IV.2.1. Thực hành với thủ tục IV.2.2. Thực hành với đệ quy IV.3. Bài tập

IV.3.1. Bài 3.1

.data

string1: .asciiz "nhap so nguyen n: " string2: .asciiz "n!= " .text main: li $v0, 4 la $a0, string1 syscall li $v0, 5 syscall addi $t4, $v0, 0 addi $t4, $t4, 1 addi $t0, $0, 1

addi $t1, $0, 1 jal Giaithua li $v0, 4 la $a0, string2 syscall li $v0, 1

add $a0, $t1, $zero

syscall j end Giaithua: addi $sp, $sp, -4 sw $ra, ($sp) slt $t3, $t0, $t4 beq $t3, 0, exit mul $t1, $t1, $t0 addi $t0, $t0, 1 jal Giaithua exit: beq $sp, 0, end lw $ra, ($sp) addi $sp, $sp, 4 jr $ra jal exit end:

Khởi tạo $t1=1 (tich=1) Nhảy tới thủ tục Giaithua

In ra chuỗi string2

In ra kết quả n!

Dừng chương trình Mở ô nhớ stack

Lưu địa chỉ thanh ghi $ra vào stack Nếu i<n+1 thì t3 = 1 Nếu t3= 0 thì nhảy đến exit t1 = t1 *t0

t0 = t0 +1

Nếu $sp=0 nhảy đến end Lưu địa chỉ của $sp vào $ra Trả về stack Nhảy đến $ra Gọi hàm exit Kết thúc chương trình Bảng 16-Bài tập 4a 38

TIEU LUAN MOI download :

Hình 8- Kết quả bài tập 4a.1

Hình 9-Kết quả bài tập 4a.2

IV.3.2. Bài 3.2

.data

chuoi1: .asciiz "nhap so phan tu cua chuoi : "

chuoi2: .asciiz "\nChuoi so fibonaci la: 1" space: .asciiz " " .text main: la $a0, chuoi1 li $v0, 4 syscall li $v0, 5

syscall addi $t0, $v0, 0 addi $t1, $0, 1 addi $t2, $0, 1 addi $t3, $0, 1 la $a0, chuoi2 li $v0, 4 syscall loop: beq $t1, $t0, exit add $t2, $t2, $t3 sub $t3, $t2, $t3 la $a0, space li $v0, 4 syscall addi $a0,$t3, 0 li $v0, 1 syscall addi $t1, $t1, 1 j loop exit: t0 = v0 t1= 1 t2= 1 t3= 1 In ra chuỗi 2

Nếu t1= t0 thì dừng(exit) t2 = t2+ t3

t3 = t2 – t3

In ra khoảng trống In ra giá trị thanh ghi t3 Nhảy đến phần tử kế tiếp Kết thúc chương trình

Bảng 17- Bài tập 4b

TIEU LUAN MOI download :

Hình 10-Kết quả bài tập 4b.1

Hình 11-Kết quả bài tập 4b.2

41

42

V. Thực hành buổi 5 – Lab05

V.1. Datapaths

 Lệnh 1: add $t1,$t2,$t3

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

Hình 12-Lệnh add

 Lệnh 2: addi $t1,$t1,5

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

43

Hình 13-Lệnh addi

 Lệnh 3: sub $t1,$t2,$3

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

Hình 14-Lệnh sub

44

 Lệnh 4: lw $t1,4($t2) ; # $t2 = 0x10010000

 Các khối hoạt động: Registers(Reading)+ALU+Registers(Writing)+PC

 Ảnh mô phỏng MIPS_Xray:

Hình 15-Lệnh lw

 Lệnh 5: sw $t1,8($t2); #$t2 = 0x10010020

 Các khối hoạt động: ALU

 Ảnh mô phỏng MIPS_Xray:

Hình 16-Lệnh sw

45

 Lệnh 6: J exit exit:

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

Hình 17-Lệnh j

 Lệnh 7: slt $t1,$t2,$t3

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

46

Hình 18- Lệnh slt

 Lệnh 8: beq $t1, $t2 ; exit exit:

 Các khối hoạt động: Registers + ALU + PC  Ảnh mô phỏng MIPS_Xray:

Hình 19-Lệnh beq

 Lệnh 9: bne $t1, $t2 ; exit exit:

47

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

Hình 20-Lệnh bne

 Lệnh 10: sll $t0, $t0, 2

 Các khối hoạt động: Registers + ALU + PC

 Ảnh mô phỏng MIPS_Xray:

Hình 21-Lệnh sll

48

Một phần của tài liệu BÁO cáo TỔNG kết môn THỰC HÀNH KIẾN TRÚC máy TÍNH – CE119 mô phỏng các chương trình bên dưới và cho biết ý nghĩa của chương trình (Trang 54 - 67)