








Preview text:
lOMoAR cPSD| 59285474
BÁO CÁO THỰC HÀNH LAB 4
MÔN KIẾN TRÚC MÁY TÍNH MSSV: 23520253
Họ và Tên: Ngô Hữu Đạt
1. Thực hành với thủ tục
- Chạy từng bước và theo dõi sự thay đổi của thanh ghi PC, $ra, $sp, $fp trong 2 hình trên. Hình 1. Bước PC $ra $sp $fp 1 0x0040001c 0x00400004 0x7fffeffc 0x0000000 2 0x00400020 0x00400004 0x7fffeffc 0x0000000 3 0x00400024 0x00400004 0x7fffeffc 0x0000000 4 0x00400028 0x00400004 0x7fffeffc 0x0000000 5 0x0040002c 0x00400004 0x7fffeffc 0x0000000 6 0x00400030 0x00400004 0x7fffeffc 0x0000000 7 0x00400034 0x00400004 0x7fffeffc 0x0000000 8 0x00400004 0x00400004 0x7fffeffc 0x0000000 lOMoAR cPSD| 59285474 9 0x00400008 0x00400004 0x7fffeffc 0x0000000 Hình 2. Bước PC $ra $sp $fp 1 0x00400070 0x00000000 0x7fffeffc 0x0000000 2 0x00400074 0x00000000 0x7fffeffc 0x0000000 3 0x00400078 0x00000000 0x7fffeffc 0x0000000 4 0x0040007c 0x00000000 0x7fffeffc 0x0000000 5 0x00400080 0x00000000 0x7fffeffc 0x0000000 6 0x004000c8 0x00400084 0x7fffeffc 0x0000000 7 0x004000cc 0x00400084 0x7fffeff4 0x0000000 8 0x004000d0 0x00400084 0x7fffeff4 0x0000000 9 0x004000d4 0x00400084 0x7fffeff4 0x0000000 10 0x004000d8 0x00400084 0x7fffeff4 0x0000000 11 0x004000dc 0x00400084 0x7fffeff4 0x0000000 12 0x004000e0 0x00400084 0x7fffeff4 0x0000000 13 0x004000e4 0x00400084 0x7fffeff4 0x0000000 14 0x004000e8 0x00400084 0x7fffeff4 0x0000000 15 0x004000ec 0x00400084 0x7fffeff4 0x0000000 16 0x004000f0 0x00400084 0x7fffeff4 0x0000000
- Chạy toàn chương trình một lần để xem kết quả
- Với code trong Hình 1, nếu bỏ dòng code “j exit”, việc gì sẽ xảy ra?
Khi xóa dòng code “j exit” thì đoạn code sẽ bị lặp vô tận
- Viết lại code trong Hình 1, thêm vào thủ tục tên showInt để in ra cửa
sổI/O giá trị của số int nhập vào cộng thêm 1. lOMoAR cPSD| 59285474
- Kết quả chương trình:
- Viết lại code trong Hình 2, lúc này chương trình chính cần tính giá trịcủa
cả hai biểu thức: (a + b) – (c + d) và (a – b) + (c – d), hàm proc_example
có hai giá trị trả về và trong thân hàm sử dụng hai biến cục bộ $s0 và $s1
($s1 lưu kết quả của (a – b) + (c – d)) lOMoAR cPSD| 59285474
- Kết quả chương trình:
- Viết lại code trong Hình 2, lúc này chương trình chính cần tính giá trịcủa
cả hai biểu thức: (a + b) – (c + d), (e - f) hàm proc_example có 6 input và
hai giá trị trả về và trong thân hàm sử dụng hai biến cục bộ $s0 và $s1
($s1 lưu kết quả của e - f) lOMoAR cPSD| 59285474
- Kết quả chương trình: lOMoAR cPSD| 59285474
2. Thực hành với đệ quy
Viết code MIPS, chạy kiểm thử trên MARS và giải thích ý nghĩa rõ ràng
cho chương trình tính giai thừa được viết bằng code C như Hình 3. - Đoạn code: lOMoAR cPSD| 59285474
- Kết quả chương trình: 2. Bài tập
1. Tiếp tục nội dung 2. Vẽ lại hình ảnh của các stack trong trường hợp tính 5! và 10! - Trường hợp 5! SP 1, ra
- Trường hợp 2, ra 10! 3, ra 4, ra 5, ra lOMoAR cPSD| 59285474
2. Viết chương trình nhập vào n và xuất ra chuỗi Fibonacci tương ứng lOMoAR cPSD| 59285474
- Kết quả chương trình: