Hướng dẫn thực hành môn Kiến trúc máy tính - Bài thực hành số 4

TRƯỜNG ĐẠI HỌC BÁCH KHOA  
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH  
Hướng dn thc hành  
Môn: Kiến Trúc Máy Tính - 504002  
Bài thc hành s 3  
TP. HCM 9/2014  
Thc hành kiến trúc máy tính  
                4  
Bng tóm tt các lnh trong bài thc hành  
Instruction  
Meaning  
Instruction Format  
add  
$s1, $s2, $s3  
$s1 = $s2 + $s3  
$s1 = $s2 + $s3  
op = 0  
op = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
f = 0x20  
f = 0x21  
addu $s1, $s2, $s3  
sub  
$s1, $s2, $s3  
$s1 = $s2 $s3  
$s1 = $s2 $s3  
$s1 = $s2 & $s3  
$s1 = $s2 | $s3  
op = 0  
op = 0  
op = 0  
op = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
rs = $s2 rt = $s3 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  
op = 0  
op = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
rs = $s2 rt = $s3 rd = $s1 sa = 0  
f = 0x26  
f = 0x27  
f = 0x00  
rs = 0  
rs = 0  
rs = 0  
rt = $s2 rd = $s1 sa = 10  
rt = $s2 rd = $s1 sa = 10  
rt = $s2 rd = $s1 sa = 10  
srl  
sra  
$s1,$s2,10  
$s1 = $s2>>>10  
$s1 = $s2 >> 10  
(Hi, Lo) = $s1*$s2  
(Hi, Lo) = $s1*$s2  
op = 0  
op = 0  
op = 0  
op = 0  
op = 0  
f = 0x02  
f = 0x03  
f = 0x18  
f = 0x19  
f = 0x1A  
$s1, $s2, 10  
mult $s1, $s2  
multu $s1, $s2  
rs = $s1 rt = $s2  
rs = $s1 rt = $s2  
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  
branch if ($s1 == $s2) op = 4  
branch if ($s1 != $s2) op = 5  
Imm16  
Imm16  
Imm16  
Imm16  
Imm16  
beq  
bne  
$s1, $s2, label  
$s1, $s2, label  
rs = $s1 rt = $s2  
rs = $s1 rt = $s2  
blez $s1, label  
bgtz $s1, label  
bltz $s1, label  
branch if ($s1 <= 0)  
branch if ($s1 > 0)  
branch if ($s1 < 0)  
op = 6  
op = 7  
op = 1  
rs = $s1  
rs = $s1  
rs = $s1  
0
0
0
3
Thc hành kiến trúc máy tính  
                4  
bgez $s1, label  
slt $t0,$s1,$s2  
branch if ($s1 >= 0)  
$t0=($s1<$s2?1:0)  
$t0=($s1<$s2?1:0)  
$t0=($s1<10?1:0)  
$t0=($s1<10?1:0)  
op = 1  
op = 0  
op = 0  
rs = $s1  
1
Imm16  
rs = $s1 rt = $s2  
rs = $s1 rt = $s2  
rd = $t0  
rd = $t0  
0
f = 0x2a  
f = 0x2b  
sltu $t0,$s1,$s2  
slti $t0,$s1,10  
sltiu $t0,$s1,10  
0
op = 0xa rs = $s1 rt = $t0  
op = 0xb rs = $s1 rt = $t0  
Imm16 = 10  
Imm16 = 10  
Các lệnh truy xuất bộ nhớ load và store  
$s1, imm16($s0)  
s1 = MEM[s0+imm16] op = 0x20 rs = $s0 rt = $s1  
Imm16  
Imm16  
Imm16  
Imm16  
Imm16  
Imm16  
Imm16  
Imm16  
lb  
lh  
$s1, imm16($s0)  
$s1, imm16($s0)  
$s1, imm16($s0)  
$s1, imm16($s0)  
$s1, imm16($s0)  
$s1, imm16($s0)  
$s1, imm16($s0)  
s1 = MEM[s0+imm16] op = 0x21 rs = $s0 rt = $s1  
s1 = MEM[s0+imm16] op = 0x23 rs = $s0 rt = $s1  
s1 = MEM[s0+imm16] op = 0x24 rs = $s0 rt = $s1  
s1 = MEM[s0+imm16] op = 0x25 rs = $s0 rt = $s1  
MEM[s0+imm16] = s1 op = 0x28 rs = $s0 rt = $s1  
MEM[s0+imm16] = s1 op = 0x29 rs = $s0 rt = $s1  
MEM[s0+imm16] = s1 op = 0x2b rs = $s0 rt = $s1  
lw  
lbu  
lhu  
sb  
sh  
sw  
4
Thc hành kiến trúc máy tính  
B ng tóm t t các l nh trong bài thc hành  
                4  
                                                            s ore(   ),  oa (   ),  
       a    o     arra  (BYTE, HALF, WORD, FLOAT, DOUBLE, ASCII, ASCIIZ,  
SPACE  )                      r       arra    .                       a              e  
                  eo  or a   ss   a   a   as ,           : 5130xxxx_lab4_bai1a.asm  
B   1.                                .  
                  ư      ướ       2 lab 2).  
 
 
                     
vi a = 4, b = 3, c = 2, d = 1  
         a, b, c, d                         ư    ư  sn  vùng data                  
                                                          kq  ư                 ướ .  
.data  
x:  
a:  
b:  
c:  
d:  
.word  
.word  
.word  
.word  
.word  
0
1
2
3
4
0
kq: .word  
.text  
main:  
#quan sát giá tr “kq”  ca s “da a”  
#$s0 cha địa ch ca biến x  
la  
$s0, x  
#địa ch biến (a, b, c, d, kq) ln lược là $s0 +  
#(4, 8, 12, 16, 20)  
#thêm code tính toán biu thc f  
D                                                                 .  
B   2.            
                     10 sau:  
1, 6, 3, 23, 3, 7, 8, 34, 24, 50  
  ế    ư                            ế                                 n.  
5
   
Thc hành kiến trúc máy tính  
                4  
B   3.             
                  :  
“K         M          13”  
            ế        ư                                                              
      ế                            ế    ư         ư                               .  
B   4. Xut giá trra LED 7  on  
S  d ng công c  Digital Lab Sim (trong menu Tool), viết chư ng trình hi n th s có  
hai ch  s bt k  ư c nhp t  ngư i dùng.  
Đon chư ng trình mu dưới  ây hi n th s 10 . Tham kh o ph n Help c a công c  
này    hi u rõ chư ng trình.  
# Display LED's Value using Digital Lab Sim,  
# please read "help"  
.data  
LEDL: .byte  
LEDR: .byte  
1
0
# Left Digit value  
# Right Digit value  
LEDFONT1: .byte 0x3f, 0x06, 0x5b, 0x4f  
.text  
la  
la  
la  
li  
li  
$t0, LEDL #load address of Left Digit value byte  
$t1, LEDR # load address of Right Digit value byte  
$t5, LEDFONT1  
$t2, 0xFFFF0011  
$t3, 0xFFFF0010  
# load address of Left Digit  
# load address of Right Digit  
# load value of Left Digit  
lbu $t0, 0($t0)  
6
   
Thc hành kiến trúc máy tính  
                4  
lbu $t1, 0($t1) #load value of Right Digit  
add $t0,$t0,$t5 #get the LEDFONT1[LEDL]  
lb  
$t0,0($t0)  
sb  
$t0, 0($t2) #push the LEDFONT1[LEDL] to Left LED  
add $t1,$t1,$t5 # get the LEDFONT1[LEDR]  
lb  
$t1,0($t1)  
sb  
$t1, 0($t3) # push the LEDFONT1[LEDR] to Right LED  
li  
syscall  
$v0, 10  
# system call for exit  
# we are out of here.  
7
pdf 7 trang baolam 26/04/2022 10680
Bạn đang xem tài liệu "Hướng dẫn thực hành môn Kiến trúc máy tính - Bài thực hành số 4", để 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:

  • pdfhuong_dan_thuc_hanh_mon_kien_truc_may_tinh_bai_thuc_hanh_so.pdf