computer architecture lab, Lab Reports of Advanced Computer Architecture

computer architecture lab in vietnam, it's very useful

Typology: Lab Reports

2024/2025

Uploaded on 02/28/2026

hoa-8
hoa-8 🇸🇬

1 document

1 / 11

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
BÀI THỰC HÀNH SỐ 1
1. Lý thuyt
Ging viên hng dn sinh viên s dng phn mm MARS da theo
tài li u: MARS – chng trình mô ph#ng h$p ng% (assembly)
MIPS
2. Th/c hành
2.1 Sinh viên tìm hi$u tài li u “M1t s2 l3nh assembly MIPS c
b4n” và mô ph(ng vi c thc thi các l nh và cho bi,t ch-c n.ng c/a
các l nh c0 bn sau:
add, addi, addu, addiu, sub, subu, and, andi, or, nor, lw, sw, slt, slti,
sltu, sltiu
Add: cộng có dấu
Addi: C ng v i h ng s , có d u
Addu: C ng không d u
Addiu: C ng v i h ng s , không d u
Sub: Tr có d u
Subu: Tr không d u
Slt:
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download computer architecture lab and more Lab Reports Advanced Computer Architecture in PDF only on Docsity!

BÀI THỰC HÀNH SỐ 1

1. Lý thuyết Giảng viên hướng dẫn sinh viên sử dụng phần mềm MARS dựa theo tài liệu: **MARS – chương trình mô phỏng hợp ngữ (assembly) MIPS

  1. Thực hành 2.1** Sinh viên tìm hiểu tài liệu “ Một số lệnh assembly MIPS cơ bản ” và mô phỏng việc thực thi các lệnh và cho biết chức năng của các lệnh cơ bản sau:

add, addi, addu, addiu, sub, subu, and, andi, or, nor, lw, sw, slt, slti,

sltu, sltiu

 Add: cộng có dấu  Addi: C ộng v ớ i h ng sằ ố, có d ấu  Addu: C ộng không d ấu  Addiu: C ộng v ớ i h ng sằ ố, không d ấu  Sub: Tr ừ có d ấu  Subu: Tr ừ không d ấu  Slt:

Cú pháp: slt $d, $s, $t Chức năng: nếu $s < $t thì $d = 1, ngược lại $d = 0 (so sánh có dấu).  Slti: Cú pháp: slti $t, $s, imm Chức năng: nếu $s < imm thì $t = 1, ngược lại $t = 0 (so sánh có dấu).  Sltu: Cú pháp: sltu $d, $s, $t Chức năng: nếu $s < $t thì $d = 1, ngược lại $d = 0 (so sánh không dấu).  Sltiu Cú pháp: sltiu $t, $s, imm Chức năng: nếu $s < imm thì $t = 1, ngược lại $t = 0 (so sánh không dấu). 2.2. Mô phỏng các chương trình bên dưới và có biết ý nghĩa của chương trình: Ví dụ 1: .data: bắt đầ u vùng dữ liệ u var1: là nhãn, địa chỉ biế n .word 23: cấp phát 1 từ (word = 4 byte) và gán giá trị ban đ ầ u là 23 T i đ a ch var1 đang lạ ị ỉ ư u s ố 23

.data: bắt đầ u vùng dữ liệ u. array1: là nhãn đặt tại địa chỉ đầ u củ a mả ng. .space 12: cấp phát 12 byte (tư ơ ng ứ ng vớ i 3 từ 32-bit = 3 phầ n tử kiể u word) cho mả ng array .text: bắt đ ầ u vùng mã lệ nh. __start: là nhãn, nơ i chư ơ ng trình bắt đầ u chạy. la $t0, array1: nạp địa chỉ đ ầ u củ a array1 vào thanh ghi $t0. li $t1, 5: nạp số 5 vào thanh ghi $t

sw $t1, ($t0): lư u giá trị trong $t1 (tứ c 5) vào ô nhớ tại địa chỉ $t (chính là phầ n tử array1[0]). li $t1, 13: nạp số 13 vào $t sw $t1, 4($t0): lư u giá trị trong $t1 (13) vào ô nh ớ có địa chỉ $t0 +

(Mỗi ph ầ n tử word = 4 byte, nên đây là ph ầ n tử tiế p theo củ a mả ng). array1[1] = 13

Ví dụ 4: .data: bắt đầ u vùng dữ liệ u. string1: là nhãn chỉ đ ế n một chuỗi ký tự. .asciiz "Print this.\n": khai báo một chuỗi ASCII, kế t thúc bằng ký tự NULL .text: bắt đầ u vùng mã lệ nh. main: là nhãn, nơ i chư ơ ng trình bắt đầ u thự c hiệ n.

li $v0, 4: Gán giá trị 4 vào thanh ghi $v la $a0, string1: Nạp địa chỉ củ a chuỗi string1 vào thanh ghi $a Khi in chuỗi, syscall yêu cầ u địa chỉ chuỗi nằm trong $a syscall: Thự c hiệ n system call dự a trên $v Vì $v0 = 4, MARS sẽ in ra chuỗi có địa chỉ lư u trong $a0. Ở đây: in ra chuỗi "Print this.\n". 2.3 Nhập vào một chuỗi, xuất ra cửa sổ I/O của MARS theo t ừng yêu cầu sau: a) Khai báo và xuất ra cửa sổ I/O 2 chu ỗi có giá trị như sau:

  • Chuỗi 1: Chao ban! Ban la sinh vien nam thu may?
  • Chuỗi 2: Hihi, minh la sinh vien nam thu 1 ^-^ li $v0, 4: Gán giá trị 4 vào thanh ghi $v la $a0, str1: Nạp địa chỉ củ a chuỗi str1 vào thanh ghi $a

d)Nhập vào 2 số nguyên sau đó xuất tổng của 2 s ố nguyên này