Professional Documents
Culture Documents
TM HIU V
CHNG TRNH M PHNG
Mc lc
I.
Code. .............................................................................................................................. 28
g. Input/Output................................................................................................................. 28
3. Bng mu trong chng trnh. ..................................................................................... 29
2
Tm hiu chng trnh m phng EduMIPS64
I. Tng quan
EduMIPS64 l phn
mm m phng tp lnh
ca MIPS64, cho ta thy
c s thc thi ca mt
chng trnh n gin, tp
lnh hot ng nh th no,
cch CPU x l, v tnh trng
ca b nh, thanh ghi N
va l chng trnh m
phng (simulator) va l
trnh tm v g li o (visual
debugger).
3
Tm hiu chng trnh m phng EduMIPS64
4
Tm hiu chng trnh m phng EduMIPS64
Directive
Bits required
Byte
.byte
Half word
.word16
16
Word
.word32
32
Double Word
.word or .word64
64
Khi khai bo mt list cc d liu cng kiu, c mt s khc bit ln gia vic ch
khai bo kiu mt ln vi vic khai bo kiu nhiu ln. Mi ln EduMIPS64 thy mt lnh
khai bo s chuyn qua ghi mt b nh cell mi. V th trong v d sau, lnh khai bo u
tin 1,2,3,4 s c lu trong mt nh (cell memory) trong khi cc lnh sau 4 s s
c lu vo nhng nh khc nhau.
V d:
.data
.byte
1, 2, 3, 4
.byte
.byte
.byte
.byte
5
Tm hiu chng trnh m phng EduMIPS64
0 0 0 0 4 3 2 1
0 0 0 0 0 0 0 1
16 0 0 0 0 0 0 0 2
24 0 0 0 0 0 0 0 3
36 0 0 0 0 0 0 0 4
Bang 2. M phng vic khai bo d liu
Meaning
ASCII code
\0
Null byte
\t
Horizontal tabulation
\n
Newline character
10
34
92
6
Tm hiu chng trnh m phng EduMIPS64
.space
ind_value:
.space
.word64
16
error_4:
.asciiz
ok_message:
.asciiz
"All right"
value:
.space
30
daddi
r14, r0,params_sys4
sw
$s2, params_sys4(r0)
daddi
$s1, r0,value
sw
$s1, ind_value(r0)
syscall
daddi
$s0, r0,-1
daddi
$a0, r0,ok_message
bne
r1, $s0,end
daddi
$a0, r0,error_4
jal
print_string
syscall
.text
write:
end:
7
Tm hiu chng trnh m phng EduMIPS64
zero
at
v0
v1
a0
a1
a2
a3
t0
8
t1
10
t2
11
t3
12
t4
13
t5
14
t6
15
t7
16
s0
17
s1
18
s2
19
s3
20
s4
21
s5
22
s6
23
s7
24
t8
25
t9
26
k0
27
k1
28
gp
29
sp
30
fp
31
ra
9
Tm hiu chng trnh m phng EduMIPS64
3. Lnh #include
Source files c th s dng lnh #include filename khi ngi dng mun s dng
cc lnh, cc chng trnh trong mt file khc. N cn c chc nng pht hin v s
cnh bo ngi dng khi ngi dng thm #include A.s trong file B.s v #include B.s
trong file A.s
10
Tm hiu chng trnh m phng EduMIPS64
1. ALU Instruction
The Arithmetic Logic Unit (ALU) l mt phn khng th thiu ca CPU, n lin
quan n s hc v cc hot ng logic.
ALU Instructions c th chia thnh 2 nhm: R-Type v I-Type.
Ngoi ra cn c 2 thanh ghi c bit : LO v HI , l nhng thanh ghi ni b
(Internal CPU register) m gi tr ca n c th truy cp qua MFLO v MFHI Instructions.
Danh sch cc lnh thuc nhm R-Type:
MFLO rd
MFHI rd
DDIV rs, rt
DDIVU rs, rt
DIV rs, rt
MULT rs, rt
DIVU rs, rt
MULTU rs, rt
DMULT rs, rt
OR rd, rs, rt
DMULTU rs, rt
12
Tm hiu chng trnh m phng EduMIPS64
2. Load/Store Instructions
-
rt l thanh ghi ngun hay thanh ghi ch ph thuc vo lnh Store hay lnh Load.
LB rt, offset(base)
LD rt, offset(base)
LH rt, offset(base)
LW rt, offset(base)
SB rt, offset(base)
SD rt, offset(base)
SH rt, offset(base)
SW rt, offset(base)
13
Tm hiu chng trnh m phng EduMIPS64
Cc R-Type instructions:
JALR rs
JR rs
Cc I-Type instructions:
B offset
Cc J-Type Instructions:
J target
JAL target
14
Tm hiu chng trnh m phng EduMIPS64
4. Cc lnh SYSCALL
-
hnh. Sau , h iu hnh s xem gi tr thanh ghi $v0 (r14) v ty thuc vo lnh syscall
c dng m thc hin chc nng tng ng.
-
syscall 3 - read() :
Cn ba tham s: file cn c, a ch lu vo, s bytes c. Nu gi tr
tham s u l 1 th chng trnh s yu cu ngi dng nhp vo thng qua
hp thoi input; nu nhp qu s bytes, hp thoi s li hin ln v ngi
dng phi nhp li.
Tr v s bytes c c, nu thc thi tht bi s tr v gi tr -1
15
Syscall 4 - write() :
Cn ba tham s: file cn ghi, a ch ca n, s bytes cn ghi.
Nu tham s u l 2 hoc 3, trnh m phng s bt ra ca s
input/output v ghi cc d liu t .
Tr v s bytes c ghi, -1 nu tht bi.
syscall 5 - printf() :
Cn nhiu bin ca tham s, tham s u tin l a ch hay cn gi l
format-string, trong format-string c th c place holdersC th:
-
%s xu k t:
%i gi tr nguyn
%d c bn ging %i
%% tng ng %
.asciiz
s1:
.asciiz
"June"
s2:
.asciiz
"EduMIPS64"
fs_addr:
.space
.word
tested!"
s1_addr:
.space
s2_addr:
.space
4
16
.word
.word
test:
.code
daddi
sw
r5, fs_addr(r0)
daddi
r2, r0, s1
daddi
r3, r0, s2
sd
r2, s1_addr(r0)
sd
r3, s2_addr(r0)
daddi
syscall
syscall
Kt qu xut ra Input/Output
17
Tm hiu chng trnh m phng EduMIPS64
BREAK:
Dng cu lnh ang chy. Thng dng kim tra li.
NOP:
Dng to khong trng trong source code.
TRAP:
C php khai bo khc ca lnh SYSCALL
HALT:
C php khai bo khc ca lnh SYSCALL 0, dng ngt trnh m phng.
18
Tm hiu chng trnh m phng EduMIPS64
19
Tm hiu chng trnh m phng EduMIPS64
21
Tm hiu chng trnh m phng EduMIPS64
Reset: t li qu trnh m phng v trng thi nh khi va m tp tin sau khi thc hin
m phng xong. T hp phm tt gi lnh l Ctrl+R.
Write Dinero Tracefile: ghi d liu truy cp b nh vo mt tp tin, nh dng xdin.
Ch c tc dng sau khi thc hin xong vic m phng chng trnh. Bn c th nhn t hp
phm Ctrl+D.
Exit : thot chng trnh
b. Execute
Bao gm cc lnh lin quan n vic thc
thi m phng mt chng trnh.
Single Cycle: thc hin m phng theo
tng cycle. Phm tt gi lnh l F7
Run: thc hin m phng ton b
chng trnh, dng li khi gp syscall 0 (hoc
tng ng) hoc mt lnh BREAK, hoc khi
ngi dng nhp vo mc trnh n Stop (hoc nhn F9). Phm tt gi lnh l F4.
22
Tm hiu chng trnh m phng EduMIPS64
Multi Cycle: thc hin m phng theo tt c cycle trong mt lnh (instruction). S lng
cc bc thc hin c th c cu hnh thng qua hp thoi Setting. Phm tt gi lnh l
F8.
Stop: Dng thc hin m phng khi ngi dng m phng theo Run hoc Multi
Cycles. Phm tt gi lnh l F9.
c. Configure
Settings: M hp thoi Settings ty
chnh chng trnh.
Change Lauguage: Cho php ngi dng
thay i ngn ng s dng giao din ngi dng.
Hin nay ch c ting Anh v c h tr.
d. Tools
Menu ny ch cha mt mc, s dng
gi hp thoi Dinero Frontend.
Dinero Frontend: M hp thoi Dinero
Frontend. Ch c th chn chc nng ny sau khi
thc hin m phng xong.
e. Window
Tile Sorts: sp xp li cc ca s chc nng con trn mn
hnh theo ng th t cnh nhau ( nh mc nh) sau khi b
sp xp li bi ngi dng.
Check/Uncheck cc dng lnh tng ng vi tn cc ca
s chc nng mun hin th trn mn hnh.
Hinh 10. Menu WIndows
23
Tm hiu chng trnh m phng EduMIPS64
f. Help
Manual: hin file hng dn s dng chng trnh.
About us: thng tin v tc gi v chng trnh.
Hinh 11. Menu Help
24
Tm hiu chng trnh m phng EduMIPS64
2. Frames (subwindows)
a. Cycles
Ca s Cycles cho thy
tin trnh thc hin chng trnh
trong tng cycle, hin th trong
mi cycle lnh no ang trong
pipeline* (xem ch thch) v on
pipeline no c xc nh.
Cc lnh c trong chng trnh s
hin th trong ct bn tri. Ct
bn phi hin th theo tng cycle,
mi ct l mt cycle.
b. Registers
25
Tm hiu chng trnh m phng EduMIPS64
c. Statistics
Thng k tt c cc s liu v
vic thc thi chng trnh. Cc s
liu ny bao gm s lng cycle, s
lng lnh, CPI (clock cycle per
instruction), Stall, kch thc file
chng trnh (Code size), n v du
chm ng (Floating point unit),
Cc s liu trn thay i theo
tin trnh thc thi chng trnh. Kt
thc vic m phng ngoi dng s
d. Pipeline
Ca s Pipeline cho thy
tnh trng thc t ca cc
pipeline, cho thy lnh no ang
trong on pipeline no.
Mi mu sc khc nhau
biu hin cho mt on pipeline
khc nhau.
26
Tm hiu chng trnh m phng EduMIPS64
e. Data
Ca s Data hin th ni
dung trong tng nh ca
thanh ghi, cng vi nhn
(Label) v d liu (Data) ly t
m ngun. Cc gi tr ny l
nhng khai bo trong phn
.data ca file ngun.
Ni dung trong cc
nh (memory cells) c th thay
i bng cch nhn p vo
chng, v iu chnh gi tr
27
Tm hiu chng trnh m phng EduMIPS64
f. Code.
Ca s Code hin th
cc lnh c load trong b
nh. Ct u tin Address l
a ch ca cc lnh trong b
nh di dng s thp lc
phn,
ct
th
hai
Representation hin th ni
dung ca lnh di dng
thp lc phn. Hai ct cn li
l Label v Instruction hin
th cc thng tin c ly t
Hinh 18. Ca s Code
file ngun.
Khi thc thi chng trnh, lnh no ang c thc hin vi cc chc nng g s c
nh du bng cc mu sc c quy nh. Bng mu ny s c trnh by di y.
g.
Input/Output
28
Tm hiu chng trnh m phng EduMIPS64
29
Tm hiu chng trnh m phng EduMIPS64
30
Tm hiu chng trnh m phng EduMIPS64