






Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
computer architecture lab in vietnam, it's very useful
Typology: Lab Reports
1 / 11
This page cannot be seen from the preview
Don't miss anything!







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
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:
d)Nhập vào 2 số nguyên sau đó xuất tổng của 2 s ố nguyên này