You are on page 1of 6

BI TP L THUYT #3

Kin trc my tnh v Hp ng - Lp: 14CTT3 v 14CTT2


Cu 1: Kho st trong tp lnh trn kin trc MIPS 32 bit h tr nhng kiu d liu c
bn no? Vi mi kiu d liu, hy gii thch ngha?
Gi : vo mc Help tab MIPS Directives ca phn mm gi lp MARS
Tr li: Kin trc MIPS 32bit h tr nhng kiu d liu c bn:
.align: Sp xp kiu d liu tip theo theo cu trc byte quy nh (0=byte
,1=half,2=word,3=double).
.ascii: Lu tr cc chui trong cc phn on d liu nhng khng thm
k t chm dt (null)
.data: Khai bo bin sau ch th ny
.text: Vit cc lnh sau ch th ny
.align: Xp kiu gi tr tip theo vo kiu d liu c ch nh (0=byte,
1=half, 2=word, 3=double)
.asciiz: Lu tr cc chui trong cc phn on d liu v thm k t
chm dt (null)
.byte: Lu tr (mng) gi tr l 8 bits (1 byte)
.double: Lu tr (mng) gi tr l du chm ng c chnh xc kp
(64bit)
.space: Cp pht b nh theo yu cu v cha c khi to
.float: Lu tr (mng) gi tr l du chm ng c chnh xc n (32
bit)
.half: Lu tr (mng) gi tr l 16 bits hay 2 bytes( ca kiu word)
.word: Lu tr (mng) gi tr l 32 bits hay 4 bytes(1 word)

Cu 2: Cho on code sau


addi $t0, $0, 4294967295
addi $v0, $0, 1
addi $a0, $t0, 0
syscall
1. Cho bit gi tr xut ra mn hnh l bao nhiu? Gii thch gc biu din s
nguyn di dng dy bit nh phn.
2. Nu ngi dng mun xut ra ng gi tr c lu thanh ghi $t0 th phi lm
sao? Trnh by on code minh ha.
Tr li:
1. Gi tr xut ra l -1 v:
S 4294967295 biu din theo hex l 0xffffffff, nn khi ta gn $v0 = 1 hay ta s
xut gi tr ny theo kiu s c du, hp ng MIPS 32 ch c th biu din ti a
32bit s nn khi tt c l bit 1 th gi tr s c du cho ra s l s -1
2. Mun in ra gia tr ng vi gi tr lu trong $t0, mnh ch cn ch th cho $v0 l
in ra mn hnh kiu d liu unsign bng cch gn cho $v0 = 36
Code minh ha:
.data
.text
addi $t0, $zero, 4294967295
addi $v0, $zero, 36
addi $a0, $t0, 0
syscall
Cu 3: Cho on code sau
addi $t0,
addi $t1,
# nhom 1
addi $v0,
addi $a0,
syscall

$0, 2147483647
$t0, 1
$0, 34
$t0, 0

# Ket thuc nhom 1


# nhom 2
addi $v0, $0, 11
addi $a0, $0, 10
syscall
# Ket thuc nhom 2
# nhom 3
addi $v0, $0, 35
addi $a0, $t1, 0
syscall
# Ket thuc nhom 3
1. Cho bit kt qu khi chy chng trnh? Gii thch
2. Nu thay gi tr thanh ghi $t0 = 2147483648 th iu g xy ra? Dng cc kin
thc hc, hy gii thch ngha kt qu tng nhm (nhm 1, nhm 2, nhm
3) v ngha tng dng code tng ng.
3. Nu nhm 2 v nhm 3, thay gi tr ca thanh ghi $v0 thnh 36 th kt qu s
nh th no? Gii thch.
Gi cho cu 2, 3: vo mc Help tab MIPS Syscall ca phn mm gi lp MARS
Tr li:
1. Chng trnh khng th thc thi, v php addi $t1, $t0, 1 b li do b trn
s khi thao tc trn kiu d liu s nguyn c du, s 2147483647 l s dng ln
nht c th biu din trn dy 32bit. Nu yu cu thut ton addi thm vo 1 th
my bo li v theo tc trn min s nguyn c du khng th thc thi c na.
2. Nu nh nu nh thay $t0 = 2147483648 th chng trnh chy bnh thng (gi
tr quay v c du s b nht, theo php cng bit) v s 2147483648 trn min s
dng c du 32bit s c biu din ging vi s m b nht trong min s
dng 32bit.
ngha cc nhm:
#nhm 1: biu din $t0 theo dng hexa v in ra mn hnh.
#nhm 2: in ra k t xung dng.
#nhm 3: biu din $t1 theo dng binary v in ra mn hnh.
3. Nu thay nhm 2 v nhm 3 gi tr 36 th mn hnh s in ra:
// nhm 2 : Kt qu == 10. Ti v $v0 36 th in ra kiu nguyn kiu unsigned
// nhm 3 : Kt qu == 2147483649 ti v in ra $t1 kiu nguyn , m $t1 ==
2147483648 + 1 ; khi thc hin

dng: addi $t1, $t0, 1.


Cu 4: Cho 2 s nguyn c lu trong 2 thanh ghi nh sau:
$t0 = 131071 v $t1 = 146569743, thc hin lnh nhn 2 thanh ghi ny.
1. Trnh by on code xut ra dng hexa ca kt qu php nhn ny.
2. C th xut kt qu nhn di dng thp phn khng? Nu c th a on code
minh ha, nu khng th gii thch trn c s khoa hc.
Tr li:
1.
.data
nhan:.asciiz "*"
bang:.asciiz " = "
.text
addi
addi
mult
mflo
mflo

$t0, $0, 131071


$t1, $0, 146569743
$t0, $t1
$s1
$s0

# in ra hexa ca 131071
li $v0, 34
addi $a0, $t0, 0
syscall
# in dau *
li $v0, 4
la $a0, nhan
syscall
# in ra hexa ca 146569743
li $v0, 34
addi $a0, $t1, 0
syscall
#in dau =
li $v0, 4
la $a0, bang
syscall

#in ra ket qua


li $v0, 34
addi $a0, $s1,
syscall
#in dau " "
li $v0, 4
la $a0, " "
syscall
#in ra ket qua
li $v0, 34
addi $a0, $s0,
syscall

hi nhan dang hexa


0

lo nhan dang hexa


0

2. Khng th xut ra dng thp phn vi bi ny v kt qu nhn 2 s nguyn


dng cho ra kt qu s m l sai theo lun l s hc, Mt s bi ton cho ra
kt qu s m v do trn s ch khng ng theo logic ton hc.
Cu 5: Cho mt mng A gm cc phn t l cc s nguyn c khai bo nh sau:
.data
array:

.word

23, -12, 45, -32

1. Trnh by on code c cc phn t t mng array v tnh tng cc phn t ca


mng v lu vo thanh ghi $s1. Lu : khng cn phi dng vng lp.
2. Ngi dng mun thay i gi tr ca phn t th 2 (v tr tnh t 0) bng gi tr
tng trn th lm th no?
Tr li: 1.
.data

array:.word
.text

23, -12, 45, -32

#khoi tao
la $s0,array #$s0 = array;
addi $s1, $0, 0 #$s1 = 0;
addi $s0, $s0, 0 #i=0
lw $t0, 0($s0) #$t0 = A[0];
add $s1, $s1, $t0 #$s1 += $t0
addi $s0, $s0, 4
lw $t0, 0($s0) #$t0 = A[1];
add $s1, $s1, $t0 #$s1 += $t0
addi $s0, $s0, 4
lw $t0, 0($s0) #$t0 = A[2];
add $s1, $s1, $t0 #$s1 += $t0
addi $s0, $s0, 4
lw $t0, 0($s0) #$t0 = A[3];
add $s1, $s1, $t0 #$s1 += $t0
li $v0, 1
addi $a0, $s1, 0
syscall
2.

Quy nh lm bi v np bi:
1. Lm c nhn.
2. Bi lm ngay trn tp tin bi ny, t tr li vo tng cu hi tng ng, bt u
cho tng cu bng ch th Tr li: (c t mu ), sau vit cu tr li hoc
on code minh ha (code minh ha th t trong table)
3. Hn cht np bi l 23g55 ngy 21/10/2015 (th T).
4. Np ng link ca tng lp. Np sai ch s khng c cu xt.
5. Mi tho lun vui lng t trn group facebook mn hc v tag tn cc Thy thc
hnh c h tr.

--- CHC MNG NGY PH N VIT NAM 20/10/2015---

You might also like