Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

BÁO CÁO THỰC HÀNH

Họ tên Nguyễn Nhựt Thành Lớp: IT012.O22.1


MSSV 23521451 STT: ………………
Bài Thực Hành LAB3
CBHD Trương Văn Cương

*Thực hành
3.1 Mô phỏng việc thực thi các lệnh và cho biết chức năng các lệnh sau:
STT Lệnh Chức năng Ví dụ
1 add Cộng giá trị trong 2 thanh ghi và lưu vào 1 add $4,$5,$9
thanh ghi
2 addi Thực hiện cộng giá trị thanh ghi rs với số tức addi $t1, $t3,9
thời, kết quả đưa vào thanh ghi rt
3 addiu Giống addi, sẽ báo khi overflow xuất hiện addi $t1, $t2, 0x1
4 addu Giống add, sẽ báo khi overflow xuất hiện addu $t1, $t2, 2
5 sub Lệnh sub có cú pháp tương tư như lệnh add, sub $3, $4, $9
nhưng add thực hiện phép toán cộng 2 thanh
ghi, kết quả lưu vào thanh ghi thứ 3 trong khi
đó, sub thực hiện phép toán trừ 2 thanh ghi, kết
quả lưu vào thanh ghi thứ 3
6 subu Lệnh subu có cú pháp và chức năng giống như subu $t2, $t2, 0x1
sub, nhưng subu không xét đến kết quả có bị
overflow hay không sub có xét đến kết quả có
bị overflow hay không; nếu bị overflow, sẽ có
thông báo

3.2 Mô phỏng thực thi chương trình


STT Chương trình Ý nghĩa
1 .data
var1: .word 23 #Khởi tạo một biến số nguyên có giá trị là 23

.text
_start:
lw $t0,var1 #Chép word từ var1 cho $t0

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 1
li $t1,5 #gán giá trị 5 cho $t1
sw $t1,var1 #lưu word trong $t1 ở var1
2 .data
array1: .space 12 # cấp 40 bytes có thể là 40 kí tự hoặc 10 số
.text nguyên
_start: la $t0, array1 #sao chép địa chỉ Ram của array1 vào thanh ghi
li $t1, 5 $t0
sw $t1,($t0) #cấp giá trị 5 vào thanh ghi $t1
li $t1, 13 #lưu word trong $t1 sang $t0
sw $t1, 4($t0) #cấp giá trị 13 vào thanh ghi $t1
li $t1, -7 #đưa word trong $t1 sang 4($t0)
sw $t1, 8($t0) #cấp giá trị -7 vào $t1
#lưu word trong $t1 sang 8($t0)
3 li $v0, 5 #cấp giá trị 5 vào thanh ghi $v0
syscall #gọi hệ thống
4 .data
string1: .asciiz "Print this.\n" #lưu chuỗi vào string1
.text
main: li $v0, 4 #gán 4 cho thanh ghi $v0
la $v0, string1 #chép địa chỉ RAM của string1 vào $v0
syscall #gọi hệ thống

*Mô phỏng:

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 2
STT1.

STT2.

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 3
STT3.

STT4.

3.3 Nhập vào 1 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ị sau:

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 4
-Chuỗi 1: Chao ban! Ban la sinh vien nam thu may?
-Chuỗi 2: Hihi, mình là sinh viên năm thứ 1 ^.^
.data
string1: .asciiz "Chao ban! Ban la sinh vien nam thu may?" #lưu chuỗi vào string1
string2: .asciiz "Hihi, mình là sinh viên năm thứ 1 ^.^" #lưu chuỗi vào string2
.text
main: li $v0, 4 #$v0 =4
li $v1, 5 #$v1 = 5
la $v0, string1 #đưa địa chỉ của chuỗi vào $v0
la $v1, string2 #đưa địa chỉ của chuỗi vào $v1
syscall #gọi hệ thống
Kết quả:

b.Biểu diễn nhị phân của hai chuỗi trên dưới bộ nhớ
00100100000000100000000000000100
00100100000000110000000000000101
00111100000000010001000000000001
00110100001000100000000000000000
00111100000000010001000000000001

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 5
00110100001000110000000000101000
00000000000000000000000000001100
c.Xuất ra lại đúng chuỗi đã nhập
.data
inputext: .asciiz
storetext: .space 100

.text
main:
addi $v0, $0, 4
la $a0, inputext
syscall

addi $v0, $0, 8


la $a0, storetext
addi $a1, $0, 100
syscall

addi $v0, $0, 4


la $a0, storetext
syscall

Kết quả:

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 6
d.Nhập vào hai số nguyên sau đó xuất tổng hai số nguyên này
.data
input: .ascizz "\nMoi ban nhap mot so nguyen"
confirm: .ascizz "\nTong hai so nguyen la: "
.text
main:
addi $v0, $0, 4
la $a0, input
syscall

addi $v0, $0, 5


syscall
add $s0, $v0, $0

addi $v1,$1, 4
syscall
la $a1, input

addi $v1, $1, 5


syscall
add $s1, $v1, $1

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 7
add $a0, $s0, $s1
la $a1, confirm
syscall

Khoa Kỹ thuật Máy tính – Trường ĐH CNTT


Báo cáo thực hành môn học Tổ chức và Cấu trúc Máy tính 2 Trang 8

You might also like