Professional Documents
Culture Documents
HỒ CHÍ MINH
TRƯỜNG ĐAI HỌC CÔNG NGHỆ THÔNG TIN
1
MỤC LỤC:
2.Thực hành.................................................................................................................3
2.1 Mô phỏng và cho biết chức năng của một số lệnh MIPS cơ bản.........................3
2.2 Mô phỏng và cho biết chức năng của một số lệnh MIPS cơ bản.........................3
3. Bài tập.......................................................................................................................5
3.1 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:.......5
a) Khai báo và xuất ra cửa sổ I/O 2 chuỗi có giá trị như sau:.................................5
b) Biểu diễn nhị phân của 2 chuỗi trên dưới bộ nhớ là gì?.....................................5
c) Xuất ra lại đúng chuỗi đã nhập...........................................................................6
d) Nhập vào 2 số nguyên sau đó xuất tổng của 2 số nguyên này............................7
2
2.Thực hành
2.1 Mô phỏng và cho biết chức năng của một số lệnh MIPS cơ bản.
3
Chương trình Ý nghĩa
.data #khai báo vùng nhớ data
varl: .word 23 #khai báo biến kiểu word: var1=23
Bảng 2.2.33 Ví dụ 3
Chương trình Ý nghĩa
.data #khai báo vùng nhớ data
string1: .asciiz "Print this.\n" #khai báo mảng kiểu asciiz: string1 ="Print this.\n"
.text #khai báo vùng nhớ text
main:
li $v0,4 #v0 =4
la $a0, string1 #gán mảng a0= string
syscall #Xuất mảng được lưu ở a0
Bảng 2.2.33 Ví dụ 4
4
3. Bài tập
3.1 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 ^-^
Chương trình Ý nghĩa
.data
string1: .asciiz "Chao ban! Ban la sinh vien nam # Gán mảng string1 là một chuỗi
thu may?"
string2: .asciiz "Hihi, minh la sinh vien nam thu 1
^-^"
.text #Gán v0 bằng 4
li $v0, 4 #Gán a0 là mảng cần xuất
la $a0, string1 # Thực hiện xuất mảng
syscall
la $a0, string2
syscall
b) Biểu diễn nhị phân của 2 chuỗi trên dưới bộ nhớ là gì?
Mỗi ô nhớ lưu 4 kí tự từ phải sang trái. Các kí tự lần lượt được lưu trong mỗi ô trong 1 word
cho đến khi đủ 4 byte mới chuyển sang địa chị mới tiếp theo.
01101111011000010110100001000011 :oahC
01101110011000010110001000100000 :nab
01100001010000100010000000100001 :! Ba
01100001011011000010000001101110 :al n
01101110011010010111001100100000 :nis
01101001011101100010000001101000 :iv h
01101110001000000110111001100101 :n ne
01110100001000000110110101100001 :t ma
01101101001000000111010101101000 :m uh
5
00000000001111110111100101100001 :\0?ya
01101001011010000110100101001000 :ihiH
01101001011011010010000000101100 :im ,
01101100001000000110100001101110 :l hn
01101001011100110010000001100001 :is a
01110110001000000110100001101110 :v hn
00100000011011100110010101101001 : nei
00100000011011010110000101101110 : man
00100000011101010110100001110100 : uht
00101101010111100010000000110001 :-^ l
00000000000000000000000001011110 :\0\0\0^
.text
li $v0, 5 #Gán v0 bằng 5 ứng với nhập một số nguyên
syscall #Nhập một số nguyên
la $t1,($v0) #Gán giá trị t1 bằng giá trị v0 cộng 0
li $v0, 5 # Gán v0 bằng 5 ứng với nhập một số nguyên
syscall #Nhập một số nguyên
la $t2,($v0) #Gán giá trị t2 bằng giá trị v0 cộng 0
add $t3, $t2, $t1 #Giá trị t3 bằng t2 cộng t1
li $v0, 1 #Giá trị v0 gán bằng 1 ứng với xuất số nguyên
la $a0, ($t3) #Giá trị a0 gán bằng giá trị t3
#Xuất giá trị của a0
7
syscall