7/25/2019 Assembly Language Programs and Instruction Set Variation
1/38
Arsitektur Dan Organisasi Komputer
Kelompok : INTEL
Anggota :
Hanafiah 13.04.1041
Leonard Samone 13.04.104!
Ag"ng #$i %ri&amodo 13.04.1043
'.Ali (an"din 13.04.104)
7/25/2019 Assembly Language Programs and Instruction Set Variation
2/38
7 Assembly LanguagePrograms
Sesuatu hal yang lain yang dibutuhkan untuk membangundan menjalankan program Assembly
1. Menyediakan ino untuk assembler tentang program dandatanya
!. instruksi non"hard#are yang didukung untuk kemudahan
Topik di BAB ini
1. Mesin dan $ahasa Assembly!. Assembly Direkti%. intruksi pseduo&. 'nstruksi makro
(. Loading dan pemutan). $erjalan ke kumpulan program
7/25/2019 Assembly Language Programs and Instruction Set Variation
3/38
Program$ahasa
Mesin
Langkah Langkah dalam mengubah program bahasa assembly untuk dieksekusi dan program berada di memori
As
semble
r
Linker
loader
Progra
m$
ahasa
Ass
embly *ksekusi
Program
$ahasaMesin
MemoriKonten
7.1 Mesin Dan $ahasa Assembly
7/25/2019 Assembly Language Programs and Instruction Set Variation
4/38
Symbol +able
Program $ahasa Assembly adalah ,ersi dari bahasa mesin dan tabelsimbol itu yang dibuat selama proses Assembly
0 00100000000100000000000000001001addi $s0,$zero,9
test
done
result12
28
248
4 00000010000100000100000000100010
8 00000001001000000000000000100000
12 00010101000100000000000000001100
16 00100001000010000000000000000001
20 00000010000000000100100000100000
24 00001000000000000000000000000011
28 10101111100010010000000011111000
Determined from assemblerdirectives not shown here
Symbol
table
done: sw $t1,result($gp)
sub $t0,$s0,$s0
add $t1,$zero,$zero
test: bne $t0,$s0,done
addi $t0,$t0,1
add $t1,$s0,$zero
j test
Assembly language program Machine language programLocation
op rs rt rd sh fn
Field boundaries shown to facilitate understanding
7/25/2019 Assembly Language Programs and Instruction Set Variation
5/38
7.! Assembler Dire-ti,es
assembler direkti memberikan ino tentang -ara menerjemahkan programtersebut tapi tidak mengarah ke generasi dari instru-tion ma-hine
.macro # start macro (see Section 7.4)
.end_macro # end macro (see Section 7.4)
.text # start programs text segment ... # program text goes here
.data # start programs data segment
tiny: .byte 156!x7a# name " initiai$e data byte(s)
max: .%ord &5!!! # name " initiai$e data %ord(s)
sma: .'oat *& # name short 'oat (see +hapter 1)
big: .do,be *& # name ong 'oat (see +hapter 1)
.aign # aign next item on %ord bo,ndary
array: .space 6!! # reser-e 6!! bytes 15! %ords
str1: .ascii /a0b # name " initiai$e 2S+33 string
str: .ascii$ /xy$ # n,*terminated 2S+33 string
.goba main # consider /main a goba name
7/25/2019 Assembly Language Programs and Instruction Set Variation
6/38
omposing Simple Assembler
Dire-ti,es
Menulis assembler direkti untuk men-apai masing"masing tujuan sebagai berikut/
a. Menempatkan pesan kesalahan 0Peringatan/ Printer kehabisan kertas0 Di
memory
b. Mengatur konstan disebut 0ukuran0 dengan nilai &
-. Mendirikan sebuah ,ariabel integer disebut 0#idth0 dan menginisialisasi ke &
d. Mengatur konstan disebut 0pabrik0 dengan nilai 1.222.222 3satu juta4.
e. -adangan ruang untuk integer ,ektor 0,ektor0 panjang !(2.
! "enyelesaian #
a! noppr: .ascii$ /arning: he printer is o,t o' paper
b! si$e: .byte 4 # sma constant 'its in one byte
c! %idth: .%ord 4 # byte co,d be eno,gh b,t ...
d! mi: .%ord 1!!!!!! # constant too arge 'or byte
e! -ect: .space 1!!! # 5! %ords 1!!! bytes
7/25/2019 Assembly Language Programs and Instruction Set Variation
7/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide 7
7.% Pseudo instru-tions
$ontoh dari one%to%one pseudo instruction# Sebagai beri&ut
not s! # compement (s!)
Di &onversi &e 'nstru&si yang nyata #
nor s!s!$ero # compement (s!)
$ontoh dari one%to%several pseudo instruction# Sebagai beri&ut
abs t!s! # p,t 8(s!)8 into t!
Di &onversi &e deretan istru&si yang nyata # Sebagai (eri&ut
add t!s!$ero # copy x into t!
st att!$ero # is x negati-e9be at$ero;4 # i' not s
7/25/2019 Assembly Language Programs and Instruction Set Variation
8/38
MiniM'PSPseudo"
instru-tions
Pseudoinstruction Usage
Move mo-e regdregs
Load address a regdaddress
Load immediate i regdanyimm
Absolute value abs regdregs
)egate neg regdregs
Multiply *into register+ m, regdreg1reg
Divide *into register+ di- regdreg1reg
,emainder rem regdreg1reg
Set greater than sgt regdreg1reg
Set less or e-ual se regdreg1reg
Set greater or e-ual sge regdreg1reg
,otate left ro regdreg1reg
,otate right ror regdreg1reg
)./ not regLoad doubleword d regdaddress
Store doubleword sd regdaddress
(ranch less than bt reg1reg>
(ranch greater than bgt reg1reg>
(ranch less or e-ual be reg1reg>
(ranch greater or e-ual bge reg1reg>
$opy
$ontrol transfer
Shift
Arithmetic
Memory access
Logic
7/25/2019 Assembly Language Programs and Instruction Set Variation
9/38
7.& Ma-ro instru-tions
Makro adalah sebuah mekanisme untukmeberikan nama ke deretan istruksi yang seringdigunakan 3 otasi Singkat 4
.macro name(args) # macro and arg,ments named
... # instrs de'ining the macro
.end_macro # macro terminator
$agaimana perbedaan ma-ro dari psuedo instru-tion 8
Pseudo yang telah ditetapkan6 diperbaiki6 dan terlihat seperti
instruksi mesin Ma-ro ditetapkan pengguna dan mirip denganprosedur 3memiliki argumen4
$agaimana perbedaan makro dari prosedur8
Kontrol ditranser dan kembali dari prosedur Setelah makro sudahdiganti6 tidak ada jejak tetap
7/25/2019 Assembly Language Programs and Instruction Set Variation
10/38
7/25/2019 Assembly Language Programs and Instruction Set Variation
11/38
7.( Linking and Loading
linker memiliki tanggung ja#ab sebagai berikut/ Memastikan penasiran yang benar 3resolusi4 dari label di semua modul Menentukan penempatan teks dan data segmen dalam memori Menge,aluasi semua alamat data dan label instruksi Membentuk program yang dapat dieksekusi tanpa reerensi yang belumterselesaikan
loader yang bertugas sebagai berikut/ Menentukan kebutuhan memori program dari header Menyalin teks dan data dari
7/25/2019 Assembly Language Programs and Instruction Set Variation
12/38
7.) =unning AssemblerPrograms
Spim adalah simulator yang dapat menjalankanprogram MiniM'PSama spim berasal dari membalikkan huru M'PS
+iga ,ersi spim yang tersedia untuk di do#nload
se-ara gratis /
PSpim untuk mesin >indo#s
9spim untuk ?"#indo#s
spim untuk sistem @ni9
Anda dapat men"do#nload spim dari/
http#00www!cs!wisc!edu0larus0spim!html
7/25/2019 Assembly Language Programs and Instruction Set Variation
13/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide 1%
'nputOutput on,entions or MiniM'PS
/able !2 'nput0output and control functions of syscain "$Spim!
($v0) Function Arguments Result
1 Print integer Integer in a! Integer displayed
2 Print floating-point Float in '1 Float displayed
3Print double-float Double-float in '1
,'1& Double-float displayed
4 Print string Pointer in a! Null-terminated string displayed
Read integer Integer returned in-!
5 Read floating-point Float returned in'!
Read double-float Double-float returned in '!,'1
8 Read string Pointer in a!, length in a1 String returned in buffer at pointer
6 Allocate memory Number of bytes in a! Pointer to memory block in -!
17 !it from program Program e!ecution terminated
.
utput
'nput
$ntl
7/25/2019 Assembly Language Programs and Instruction Set Variation
14/38
Status bar
Menu bar
/ools bar
File
Simulator
"indo#
$penSa%e &og F ile!it
'ile( )essages* 'e! t Segment+ Data Segment Registers .onsole.lear .onsole'oolbarStatus bar
.lear RegistersReinitiali/eReload0o1reak.ontinueSingle Step)ultiple Step 2221reakpoints 222Set 3alue 222Disp Symbol 'ableSettings 222
For 4elp, press F(
PCSpim
Registers
File Simulator "indo# 4elp
@+ !!4!!!!! @+ !!!!!!!! +a,se !!!!!!!!Stat,s !!!!!!!! A3 !!!!!!!! >B !!!!!!!!
Cenera DegistersD! (r!) ! DE (t!) ! D16 (s!) ! D4D1 (at) ! DF (t1) ! D17 (s1) ! D5
G!x!!4!!!!!H !x!c1!!!!E Ia !x!!4!!!! GmainH ? 4&G!x!!4!!!!4H !x!!!!!!1 add, ! ! ! ? 44G!x!!4!!!!EH !x4!!!!a addi, ! 1! ? 45G!x!!4!!!!cH !x!!!!!!!c sysca ? 46G!x!!4!!!1!H !x!!!!!!1 add, ! ! ! ? 47
J22G!x1!!!!!!!H !x!!!!!!!! !x6c6F6146 !x!!6465G!x1!!!!!1!H !x676e6F74 !x444441! !x6554!!!aG!x1!!!!!!H !x4441!67 !x!!!a4F44 !x747&6554
'e!t Segment
Data Segment
)essages
1ase5(6 Pseudo5(, )apped5(6 &oad'rap57
?
See the 'ie D2JK 'or a ', copyright notice.Kemory and registers ha-e been ceared and the sim,ator rei
J:LtempLdosLSSL2,bare.s has been s,ccess',y oaded
PSpim@ser
'ntera-e
7/25/2019 Assembly Language Programs and Instruction Set Variation
15/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture Slide 1(
B 'nstru-tion SetCariations
Topics in This Chapter
8!1 $omple9 'nstructions
8!2 Alternative Addressing Modes
8!3 :ariations in 'nstruction ;ormats
8!4 'nstruction Set Design and
7/25/2019 Assembly Language Programs and Instruction Set Variation
16/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide 1)
=e,ie# o Some Key on-epts
(erbeda dari "rusedur> di
dalam ma&ro diganti
dengan instu&si yg setara
Semua yang samapanjang
ields digunakan
se-ara konsisten3de-oding sederhana4
Dapat memulaipemba-aan registerbahkan sebelumde-oding instruksi
Macroinstruction
'nstruction'nstruction'nstruction
;ormat instru&si untu& simple ,'S$ design
Microinstruction
MicroinstructionMicroinstructionMicroinstructionMicroinstruction
'nstruction
bits bits
31 2 27 1 7
.pcode Sourceregister 1
Sourceregister 2
op rs rt
R 5 bits bits
rd
bits
sh
5 bits
17 fn
Destinationregister
Shiftamount
.pcodee9tension
'mmediate operandor address offset
31 2 27 1 7
.pcode Destinationor data
Sourceor base
op rs rt operand / offset
I bits5 bits 15 bits bits
7 7 7 7 7 7 7 7 7 7 71 1 1 1 11 7 7 7 7 7 7 7 7 7
31 7
.pcode
op jump target address
J
Memory word address *byte address di vided by 4+
25 bits
2
5 bits
7/25/2019 Assembly Language Programs and Instruction Set Variation
17/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide 17
B.1 omple9 'nstru-tions
/able 8!1 *partial+ $ontoh%contoh comple9 instruction di dalam dua popular
microprocessor moderen dan dua &eluarga &omputer
Machine Instruction ffect
"entium KBMS Memindah&an satu element dalam string byte> &ata>atau &ata ganda mengguna&an alamat yangditentu&an dalam dua pointer register> setelah operasi>&enai&an atau penurunan register untu& menun?u&an
&e elemen string beri&utnya
"ower"$ cnt$d Menghitung ?umlah 7s berturut%turut dalam registersource yang ditentu&an dimulai dengan bit posisi 7dan menempat&an hitungan dalam tu?uan register
'(M 357%37 +S (anding&an dan swap # membanding&an isi registerdengan sebuah lo&asi memori@ ?i&a tida& sama>
memuat memory word &edalam register> ?i&a samasimpan &onten dari register yang berbeda &elo&asiyang sama!
Digital :A @B>NJ dengan presisi ygsangat tinggi dalam hasil yg menengah! menguna&antabel &oefisien yang lo&asinya di dalam memori di
beri&an didalam instru&si
7/25/2019 Assembly Language Programs and Instruction Set Variation
18/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide 1B
$eberapa rin-ian dari -ontoh -omple9instru-tion
KBMS*Move string+
Source
string
Destination
string
cnt$d*$ount leading 7s+
7777 7717 1177 7111
7777 7777 7777 7117
5 leading 7s
@B>NJ*"olynomial evaluation in
double floating%point+
cnB1xnB1C ! ! !C c2x
2C c1xC c7
.oefficients
x
7/25/2019 Assembly Language Programs and Instruction Set Variation
19/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide 1E
Manaat dan kerugian dari omple9instru-tion
Sedi&it instru&si didalammemori *memori lebih sedi&it+
"otensi e&se&usi lebih cepat
*Lang&ah%lang&ah yang&omple&s masih dila&u&an
berurutan dalam beberapa
si&lus> tetapi &ontrol hardware
dapat lebih cepat dari loop
software+
A&ses memori yg lebih sedi&it
untu& instru&si
"rogram dapat men?adi lebih
mudah untu& ditulis 0 dibaca 0
dipahami
format yang lebih &omple&s*Decoding lebih lambat+
&urang fle&sibel *Satu
algoritma untu& evaluasi
polinomial atau pemilahanmung&in tida& men?adi yang
terbai& dalam semua &asus+
i&a interupsi diproses di a&hir
si&lus instru&si> Mesinmung&in men?adi &urang
responsif terhadap "eristiwa
wa&tu%&ritis *interrupt
handling+
7/25/2019 Assembly Language Programs and Instruction Set Variation
20/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !2
B.! Mode Pengalamatan Alternani,e
;igure !11 S&ema representasi mode pengalamatan di MiniM'"S!
LetEs
refresh
our
memory
*from$hap! +
Addressing 'nstruction .ther elements involved .perand
'mplied
'mmediate
,egister
(ase
"$%relative
"seudodirect
Some place
in the machine
if re-uired
,eg file,eg spec ,eg data
MemoryAdd
,eg file
Memaddr
$onstant offset
,eg base ,egdata
Memdata
Add
"$
$onstant offset
Memory
Memaddr Mem
data
MemoryMemdata
"$ Memaddr
7/25/2019 Assembly Language Programs and Instruction Set Variation
21/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !1
+able ).!
Instruction Usage
Move from Fi m'hi rd
Move from Lo m'o rd
Add unsigned add, rdrsrt
Subtract unsigned s,b, rdrsrt
Multiply m,t rsrt
Multiply unsigned m,t, rsrt
Divide di- rsrt
Divide unsigned di-, rsrtAdd immediate unsigned addi, rsrtimm
Shift left logical s rdrtsh
Shift right logical sr rdrtsh
Shift right arithmetic sra rdrtsh
Shift left logical variable s- rdrtrs
Shift right logical variable sr- rdrtrs
Shift right arith variable sra- rdrtrs
Load byte b rtimm(rs)
Load byte unsigned b, rtimm(rs)
Store byte sb rtimm(rs)
ump and lin& Ia >
S stem call sysca
Instruction Usage
Load upper immediate ,i rtimm
Add add rdrsrt
Subtract s,b rdrsrt
Set less than st rdrsrt
Add immediate addi rtrsimm
Set less than immediate sti rdrsimm
A)D and rdrsrt
., or rdrsrt., xor rdrsrt
)., nor rdrsrt
A)D immediate andi rtrsimm
., immediate ori rtrsimm
., immediate xori rtrsimm
Load word % rtimm(rs)
Store word s% rtimm(rs)
ump I >
ump register Ir rs
(ranch less than 7 bt$ rs>
(ranch e-ual be rsrt>
(ranch not e ual bne rsrt>
Addressing Mode
7/25/2019 Assembly Language Programs and Instruction Set Variation
22/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !!
Mode Pengelamatan yang lebih rumit
;igure 8!1 S&ema representasi dari mode pengalamatan
yang lebih rumit yang tida& didu&ung di MiniM'"S!
x : OGiH
x : KemGpH
p : p ; 1
x : OGiH
i : i ; 1
t : KemGpH
x : KemGtHx:KemGKemGpHH
Addressing 'nstruction .ther elements involved .perand
Mem data"$
Mem addr
Memory
MemoryAdd,eg file Mem
addr Memdata'nde9 reg
(ase reg
Memory,eg file
Memaddr Mem
data
'ncrement amount
(ase reg
'ndirect
'nde9ed
Gpdate*with base+
Gpdate*with inde9ed+ MemoryAdd
,eg file Memaddr Mem
data
'nde9 reg
(ase reg
'ncrementamount
Memory
Mem addr>2nd access
Mem data>2nd access
/his part maybe replaced with anyother form of address specification
'ncre%ment
'ncrement
7/25/2019 Assembly Language Programs and Instruction Set Variation
23/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !%
Kegunaan dari beberapa Mode Pengalamatan yang rumit
Gpdate mode# .,ing a string of bytes
oop: b t!2(s!)
xor s1s1t!
addi s!s!*1
bne s!$erooop
.ne instruction with
update addressing
'ndirect mode# $ase statement
case: % t!!(s!) # get s
add t!t!t! # 'orm s
add t!t!t! # 'orm 4s
a t1 # base add t1t!t1
% t!(t1) # entry
Ir t
L7
L1
L2
L3
L4
L
/
/C4
/C27
/C15
/C12
/C8
(ranch to location Liif s H i*switch var!+
7/25/2019 Assembly Language Programs and Instruction Set Variation
24/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !&
B.% Cariasi ormat 'nstruksi
;igure 8!2 ontoh dari MiniM'PS instruksi dengan 2"%alamatF bidang yang diarsir belum digunakan.
7%> 1%> 2%> dan 3 alamat instru&si di MiniM'"S
3%address
7%address
1%address
2%address
sysca##
I
m,#t
add
.ne implied operand in register 7-!
Destination and two source registers addressed
/wo source registers addressed> destination implied
ump target addressed *in pseudodirect form+
$ategory ;ormat .pcode Description of operand*s+
Address2
12
rtrs7 24
rtrs7 rd 32
7
7/25/2019 Assembly Language Programs and Instruction Set Variation
25/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !(
Gero"Address Ar-hite-ture/ Sta-k Ma-hine
Stac& menyimpan semua operands *Mengganti file ,egister+
.perasi Load0Store men?adi push0pop
.perasi Arithmetic0logic hanya memerlu&an sebuah opcode # pop
operand dari punca& stac& dan push hasilnya &e stac&
Anda mung&in harus push
beberapa &ali
Special instructions seperti IDuplicateJ dan ISwapJ men?adi sangat
membantu
"olish string# a b C d c B
7/25/2019 Assembly Language Programs and Instruction Set Variation
26/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !)
One"Address Ar-hite-ture/ A--umulatorMa-hine
A&umulator> register &husus yang mele&at pada ALG> selalu
menampung operand 1 dan operation resultFanya satu operan yang perlu ditetap&an oleh instru&si
Kondisi atautarget address harus tersirat
(ranch to L if acc negative
i&a register 9 adalah negative s&ip the ne9t
instruction
7/25/2019 Assembly Language Programs and Instruction Set Variation
27/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !7
+#o"Address Ar-hite-tures
Dua alamat dapat diguna&an dalam berbagai cara
.perand10result and operand 2
$ondition to be chec&ed and branch target address
7/25/2019 Assembly Language Programs and Instruction Set Variation
28/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !B
$omponents that form a variable%length 'A%32 *87985+ instruction!
*9ample o a omple9 'nstru-tion ormat
.ffset or displacement *7> 1> 2> or 4 (+
'mmediate *7> 1> 2> or 4 (+
.pcode *1%2 (+
'nstruction prefi9es *ero to four> 1 ( each+
Mod ,eg0.p ,0M Scale 'nde9 (ase
Mod,0M S'(
.perand0addresssie overwrites and
other modifiers
Most memory
operands need
these 2 bytes
'nstructions can
contain
up to 1 bytes
7/25/2019 Assembly Language Programs and Instruction Set Variation
29/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide !E
;igure 8!3 misalnya 'nstruksi B29B) lebar mulai dari 1hingga ) byteF instruksi yang lebih luas 3hingga 1( bytes4juga ada
Some o 'A"%!Hs Cariable">idth 'nstru-tions
4%byte
1%byte
2%byte
3%byte
5%byte
%byte
/ype ;ormat *field widths shown+ .pcode Description of operand*s+
885
@PSA
Q)
KBM
RBD
3%bit register specification
8%bit register0mode> 8%bit base0inde9>
8%bit offset
8%bit register0mode> 8%bit offset
4%bit condition> 8%bit ?ump offset
2JJ
5)S5 8%bit register0mode> 32%bit immediate
3%bit register spec> 32%bit immediate
3
4 4 8
3 324
8 32
88 88
7/25/2019 Assembly Language Programs and Instruction Set Variation
30/38
Atribut yang diingin&an dari sebuah set instru&si !
"onsisten> dengan seragam dan aturan umum yang berla&u!
#rthogonal> dengan fitur independen noninterfering!
Transparan> tanpa efe& samping terlihat &arena rincian pela&sanaan
as$ to lear/user*sering produ& sampingan dari tiga atribut di atas +!
%tensi&le> sehingga memung&in&an penambahan &emampuan masa
depan!
fisien> bai& dari segi &ebutuhan memori dan realisasi hardware!
B.& Desain Set 'nstruksi and *,olusi
;igure 8!4 Desain "rosesor dan 'mplementasi "roses!
"ro%
cessordesignteam
)ewmachinepro?ect
/uning bug fi9es
"erformanceob?ectives
'nstruction%setdefinition
'mple%men%tation ;abrica%
tion testing
Sales
use
;eedbac&
7/25/2019 Assembly Language Programs and Instruction Set Variation
31/38
B.( +he ='S'SDi-hotomy
Fitur arsitektur RISC :
1.set instruksi kecil , masing-masing dieksekusi di sekitar waktu ang sama
!."oad # store arsitektur $ ang le%i& mengara& ke register '
(.mode pengalamatan ang ter%atas untuk meneder&anakan per&itungan alamat
).Seder&ana , *ormat instruksi ang seragam $ kemuda&an decoding '
RISC $ reduced instruction set komputer ' +lsa*at : ompleks setinstruksi ang tidak diinginkan karena dimasukkanna mekanismeuntuk mena*sirkan semua kemungkinan kom%inasi dari opcodes danoperan mungkin memperlam%at operasi %a&kan sangat seder&ana
7/25/2019 Assembly Language Programs and Instruction Set Variation
32/38
='S 'S Perbandingan melalui Iukum Jeneralied Amdahl
'SA memiliki dua kelas sederhana 3S4 dan kompleks 34 instruksi.Pada implementasi reerensi dari 'SA6 instruksi kelas"S a--ountuntuk E( dari #aktu berjalan untuk program menarik. Sebuah,ersi ='S mesin sedang dipertimbangkan yang mengeksekusihanya petunjuk kelas"S se-ara langsung dalam perangkat keras6
dengan instruksi kelas diperlakukan sebagai petunjuk semu.Diperkirakan dalam ,ersi ='S6 instruksi kelas"S akan berjalan!2 lebih -epat sementara instruksi kelas" akan melambatdengan aktor %. Apakah pendekatan ='S mena#arkan lebih baikatau kinerja buruk dibandingkan dengan implementasi reerensi8
Solusinya / Per asumsi6 26E( dari pekerjaan diper-epat dengan
aktor 162 26B 16!(6 sedangkan sisanya ( diperlambatdengan aktor %. ='S speedup adalah 1 N2.E( 1.!( 262( 9 % 1.1. Dengan demikian6 peningkatan 12 dalam kinerja dapatdiharapkan dalam ,ersi ='S.
7/25/2019 Assembly Language Programs and Instruction Set Variation
33/38
$eberapa Manaat +ersembunyi dari
='S
Pada ontoh B.16 kita menetapkan bah#a aktorspeedup dari 161 dapat diharapkan dari ,ersi ='Smesin hipotetis.'ni bukan seluruh -erita6 namun .
5ika speedup 161 datang dengan beberapa biayatambahan6 maka salah satu mungkin sahbertanya"tanya apakah itu layak biaya dan usahadesain.
='S ,ersi arsitektur juga/Mengurangi usaha dan tim ukuran untuk desain
Mempersingkat pengujian dan debugging ase
dokumentasi disederhanakan dan pemeliharaan.
produk yang lebihmurah dan #aktuyang pendek untukkepasar
7/25/2019 Assembly Language Programs and Instruction Set Variation
34/38
5an. !211 omputer Ar-hite-ture6 'nstru-tion"Set Ar-hite-ture
Slide %&
M'PS Penilaian Kinerja untuk standar
An m%M'"S processor dapat menge&se&usi m jutaan instruksi per detik
Membandingkan prosesor m"M'PS dengan prosesor 12m"M'PSSeperti membandingkan dua orang yang memba-a halaman m danhalaman 12m per jam
Memba-a 122 halaman per jam6 dibandingkan dengan 12halaman per jam6 mungkin tidak memungkinkan Anda untukmenyelesaikan tugas memba-a hal yang sama di 112 #aktu
17 pages 0 hr 177 pages 0 hr
7/25/2019 Assembly Language Programs and Instruction Set Variation
35/38
='S 'S Kon,ergensi
Desain ='S a#al/D ))226 superkomputer yang sangat ino,ati dari pertengahan 1E)2"an
'$M B216 berpengaruh -hip tunggal proyek prosesor dari akhir 1E72"an
"Pada a#al 1EB2"an6 dua proyek memba#a ='S ke permukaan/@ $erkeley ='S 1 dan !6 pelopor dari SPA= Sun
Stanord M'PS6 kemudian dipasarkan oleh sebuah perusahaandengan nama yang sama
"Sepanjang tahun 1EB26 ada perdebatan panas tentang manaatrelati dari ='S dan 'S arsitektur.
"Sejak tahun 1EE2"an6 perdebatan telah didinginkan
"hard#are kita sekarang dapat menikmati kedua set manaatdengan memiliki instruksi yang kompleks se-ara otomatisditerjemahkan ke urutan instruksi yang sangat sederhana yangkemudian dieksekusi pada ='S berbasis
7/25/2019 Assembly Language Programs and Instruction Set Variation
36/38
B.) >here to Dra# Line
/he ultimate reduced instruction set computer *G,'S$+#
$erapa banyak instruksi yang benar"benar diperlukan untuk perhitunganyang berguna8
Ianya satu
kurangi source1 dari sumber 2, menggantikan sumber 2 dengan hasilnya, danmelompat untuk menargetkan alamat jika hasilnya negatif
orm $ahasa Assembly/
label: dest urisc, src 1, Target
'nstruksi Pseudo dapat disintesis menggunakan instruksi tunggal/
stop: .%ord !
start: ,risc destdest;1 # dest !,risc temptemp;1 # temp !
,risc tempsrc;1 # temp *(src)
,risc desttemp;1 # dest *(temp)? i.e. (src)
... # rest o' program
7/25/2019 Assembly Language Programs and Instruction Set Variation
37/38
$eberapa Petunjuk Pseudo $erguna
untuk @='S
Menulis urutan instruksi yang dihasilkan oleh assembler @='Suntuk setiap petunjuk semu berikut.
parta: ,add destsrc1src #dest(src1);(src)
partc: ,I abe #goto abe
Solusi :
A+1 dan at! adalah lokasi memori sementara untuk perakitmenggunakan
parta: ,risc at1at1;1 #at1 !
,risc at1src1;1 #at1 *(src1)
,risc at1src;1 #at1 *(src1)=(src) ,risc destdest;1 #dest !
,risc destat1;1 #dest *(at1)
partc: ,risc at1at1;1 #at1 !
,risc at1oneabe #at1 *1 to 'orce I,mp
7/25/2019 Assembly Language Programs and Instruction Set Variation
38/38