Hướng dẫn thực hành Kiến trúc máy tính - Bài số 3
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
Hướng dẫn thực hành
Môn: Kiến Trúc Máy Tính - 504002
Bài thực hành số 3
TP. HCM 9/2014
Nội dung
Bài 1. Phát biểu if/ else.................................................................................................... 6
Bài 2. Phát biểu for .......................................................................................................... 7
Bảng tóm tắt các lệnh trong bài thực hành
Instruction
Meaning
Instruction Format
add
$s1, $s2, $s3
$s1 = $s2 + $s3
$s1 = $s2 + $s3
op = 0 rs = $s2 rt = $s3
rd = $s1 sa = 0
rd = $s1 sa = 0
f = 0x20
f = 0x21
addu $s1, $s2, $s3
op = 0 rs = $s2 rt = $s3
op = 0 rs = $s2 rt = $s3
op = 0 rs = $s2 rt = $s3
op = 0 rs = $s2 rt = $s3
op = 0 rs = $s2 rt = $s3
sub
$s1, $s2, $s3
$s1 = $s2 – $s3
$s1 = $s2 – $s3
$s1 = $s2 & $s3
$s1 = $s2 | $s3
rd = $s1 sa = 0
rd = $s1 sa = 0
rd = $s1 sa = 0
rd = $s1 sa = 0
f = 0x22
f = 0x23
f = 0x24
f = 0x25
subu $s1, $s2, $s3
and
or
$s1, $s2, $s3
$s1, $s2, $s3
xor
nor
sll
$s1, $s2, $s3
$s1, $s2, $s3
$s1,$s2,10
$s1 = $s2 ^ $s3
$s1 = ~($s2|$s3)
$s1 = $s2 << 10
op = 0 rs = $s2 rt = $s3
op = 0 rs = $s2 rt = $s3
rd = $s1 sa = 0
rd = $s1 sa = 0
rd = $s1 sa = 10
f = 0x26
f = 0x27
f = 0x00
op = 0
op = 0
op = 0
rs = 0
rs = 0
rs = 0
rt = $s2
rt = $s2
rt = $s2
srl
sra
$s1,$s2,10
$s1 = $s2>>>10
$s1 = $s2 >> 10
(Hi, Lo) = $s1*$s2
(Hi, Lo) = $s1*$s2
rd = $s1 sa = 10
rd = $s1 sa = 10
f = 0x02
f = 0x03
f = 0x18
f = 0x19
f = 0x1A
$s1, $s2, 10
mult $s1, $s2
multu $s1, $s2
op = 0 rs = $s1 rt = $s2
op = 0 rs = $s1 rt = $s2
op = 0 rs = $s1 rt = $s2
rd = 0
rd = 0
rd = 0
sa = 0
sa = 0
sa = 0
div
$s1, $s2
Hi = $s1/$s2
Lo = $s1%$s2
divu $s1, $s2
Hi = $s1/$s2
op = 0 rs = $s1 rt = $s2
rd = 0
sa = 0
f = 0x1B
Lo = $s1%$s2
mfhi $s1
mflo $s1
$s1 = Hi
$s1 = Lo
op = 0
op = 0
rs = 0
rs = 0
rt = 0
rt = 0
rd = $s1 sa = 0
rd = $s1 sa = 0
f = 0x10
f = 0x12
Các lệnh số học/luận lý có hằng số
Imm16 = 10
addi $s1, $s2, 10
addiu $s1, $s2, 10
andi $s1, $s2, 10
$s1 = $s2 + 10
op = 0x8 rs = $s2 rt = $s1
op = 0x9 rs = $s2 rt = $s1
op = 0xc rs = $s2 rt = $s1
op = 0xd rs = $s2 rt = $s1
op = 0xe rs = $s2 rt = $s1
$s1 = $s2 + 10
$s1 = $s2 & 10
$s1 = $s2 | 10
$s1 = $s2 ^ 10
$s1 = 10 << 16
Imm16 = 10
Imm16 = 10
Imm16 = 10
Imm16 = 10
Imm16 = 10
ori
$s1, $s2, 10
xori $s1, $s2, 10
lui
$s1, 10
op = 0xf
0
rt = $s1
Các lệnh rẽ nhánh, nhảy
Imm26
j
label
jump to label
op = 2
Imm16
Imm16
Imm16
Imm16
Imm16
Imm16
0
beq
bne
$s1, $s2, label
$s1, $s2, label
branch if ($s1 == $s2) op = 4 rs = $s1 rt = $s2
branch if ($s1 != $s2) op = 5 rs = $s1 rt = $s2
blez $s1, label
bgtz $s1, label
bltz $s1, label
bgez $s1, label
branch if ($s1 <= 0)
branch if ($s1 > 0)
branch if ($s1 < 0)
branch if ($s1 >= 0)
$t0=($s1<$s2?1:0)
op = 6 rs = $s1
op = 7 rs = $s1
op = 1 rs = $s1
op = 1 rs = $s1
0
0
0
1
slt
$t0,$s1,$s2
op = 0 rs = $s1 rt = $s2
rd = $t0
f = 0x2a
sltu $t0,$s1,$s2
slti $t0,$s1,10
sltiu $t0,$s1,10
$t0=($s1<$s2?1:0)
$t0=($s1<10?1:0)
$t0=($s1<10?1:0)
op = 0 rs = $s1 rt = $s2
op = 0xa rs = $s1 rt = $t0
op = 0xb rs = $s1 rt = $t0
rd = $t0
0
f = 0x2b
Imm16 = 10
Imm16 = 10
Thực hành kiến trúc máy tính
Bài thực hành sꢀ 3
Bꢀi thꢁc hꢀnh nꢀy nhꢂm mꢃc đꢄch nꢅm đưꢆc cꢇch dꢈng cꢇc lꢉnh rꢊ nhꢇnh, lꢉnh nhꢋy.
Bên cꢌnh đꢍ cꢎng giꢏp sinh viên viꢐt cꢇc chương trꢑnh cꢍ cꢒu trꢏc như cꢇc ngôn ngꢓ cꢒp
cao
Tham khꢀo các sơ đꢁ cꢂu trúc cꢃa phát biểu (if-else, for, while, do-while) ꢄ các hꢅnh sau
để hoàn thành các bài tꢆp bên dưới.
start
start
i o ng p
u n?
ng
u n?
ng
Sai
nh if
Sai
nh else
Code block
Update u c
end
for
Hꢅnh 1: Cꢂu trúc lꢇnh if/else
end
Hꢅnh 2: cꢂu trúc lꢇnh for
5
Thực hành kiến trúc máy tính
Bài thực hành sꢀ 3
start
start
Code block
ng
u n?
u n?
ng
Sai
Sai
Code block
end
Hꢅnh 4: Cꢂu trúc lꢇnh do-while
end
Hꢅnh 3: Cꢂu trúc lꢇnh while
Sinh viên chuyển cꢇc cꢒu trꢏc sau của ngôn ngꢓ C qua ngôn ngꢓ assembly, ꢔ mꢕi câu
thꢁc hꢀnh lưa lꢌi thꢀnh file vꢀ đưꢆc đꢖt tên theo format mssv_lab_bai.[asm,txt]. Vꢄ dꢃ:
5130xxxx_lab2_bai1a.asm
Bài 1. Phát biểu if/ else
Nhꢆp giá trꢈ cꢃa a tꢉ bàn phím. Tính giá trꢈ cꢃa c khi biết b = 20, d = 10.
if (a >= 0) {
c = b + d;
} else {
c = b – d;
}
a, b, c, d lần lược là $s0, $s1, $s2, $s3
6
Thực hành kiến trúc máy tính
Bài thực hành sꢀ 3
# Program: Lab3 bai1; Look at slide #22, #23 of Chapter03_2 for more #
info about the system functions
.data
str_a: .asciiz "\nNhap a: "
output: .asciiz "\nKet qua C: "
.text
main:
# Start of code section
# Execution begins at label "main"
#b = $s1 = 20
addi $s1,$0,20
ori
$s3,$0,10
$v0,4
#d = $s3 = 10
li
la
# system call code for printing string = 4
$a0, str_a # load address of string to be printed into $a0
syscall
li
$v0,5
# system call code for reading an Integer
syscall
or
$s0,$0,$v0 # a = $s0 = $v0 = value read
...
#Putting your code here
li
la
$v0,4
# system call code for printing string = 4
$a0,output # load address of string to be printed into $a0
syscall
# call operating system to perform operation;
# system call code for printing Integer = 1
li
or
$v0,1
$a0,$0,$s2 # load value of c to be printed into $a0
syscall
# call operating system to perform operation;
Bài 2. Phát biểu for
Dꢊng vꢋng lꢌp for để xuꢂt ra giá trꢈ cꢃa số fibonaci thꢍ n. số n đưꢎc nhꢆp tꢉ ngưꢏi dꢊng.
f0 = 0;
f1 = 1;
7
Thực hành kiến trúc máy tính
Bài thực hành sꢀ 3
for ( $t0 = n; $t0 >= 0; $t0 --){
fn = fn-1 + fn-2 ;
}
Dꢐy số fibonacci (Nguꢁn: http://en.wikipedia.org/wiki/Fibonacci_number)
F0
F1
F2
F3
F4
F5
F6
F7
13
F17
987 1597
F8
21
F9
34
0
1
1
2
3
5
8
F10
55
F11
89
F12
F13
F14
F15
F16
F18
F19
144
233
377
610
2584
4181
Bài 3. Phát biểu switch-case
Hiꢇn thực phát biểu switch-case bên dưới bꢑng hꢎp ngꢒ. Cho biết b = 10 , c = 5. Giá trꢈ
input đưꢎc nhꢆp tꢉ ngưꢏi dꢊng.
switch (input)
{
Case 0: a = b + c; break;
case 1: a = b – c; break;
case 2: a = b × c; break;
case 3: a = b ÷ c; break;
default: NOP; break;
}
Bài 4. Phát biểu while
Dꢊng vꢋng lꢌp while để tính tꢓng cꢃa n số đꢔu tiên. Thꢕ nghiꢇm với n ≥ 5
i = 0;
sum = 0;
while ( i != n){
sum = sum + i;
i = i + 1;
}
8
Bạn đang xem tài liệu "Hướng dẫn thực hành Kiến trúc máy tính - Bài số 3", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- huong_dan_thuc_hanh_kien_truc_may_tinh_bai_so_3.pdf