![Page 1: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/1.jpg)
1
IKI10230Pengantar Organisasi Komputer
Kuliah no. 3: Machine Instructions
26 Februari 2003
Bobby Nazief ([email protected])Qonita Shahab ([email protected])
bahan kuliah: http://www.cs.ui.ac.id/kuliah/iki10230/
Sumber:1. Hamacher. Computer Organization, ed-5.2. Materi kuliah CS61C/2000 & CS152/1997, UCB.
![Page 2: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/2.jpg)
2
Review: The Stored Program Computer (2/2)
° Memori menyimpan instruksi dan data sebagai bit.
° Instruksi diambil oleh prosesor dari memori, diartikan, dan, dieksekusi (operands/data diambil, diolah, dan disimpan ke memori).
° Contoh Instruksi 4-digit• Operasi: 0 => add, 1 => sub• Alamat hasil• Alamat op1• Alamat op2
0 0 7 4 51 1 8 7 62 0 9 8 634 0 0 6 15 0 0 1 76 0 0 0 37 0 0 0 08 0 0 0 09 0 0 0 0
data
instruksiinstruksi 0: 0745 0=add (jenis instruksi), 7=addr. result, 4=addr op1, 5=addr op2
Apa yang berada di lokasi 9 setelah eksekusi instruksi 0, 1, 2?
![Page 3: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/3.jpg)
3
Review: Operasi pada Memori
Processor (active)
Control(“brain”)
Datapath(“brawn”)
0 0 7 4 51 1 8 7 62 0 9 8 634 0 0 6 15 0 0 1 76 0 0 0 37 0 0 0 08 0 0 0 09 0 0 0 0
0745
00610017
0078
Instruction Fetch
Data (Operand) Read
Data Store (Write)
0745: Add (4),(5),(7) ; M[7] M[4] + M[5]
![Page 4: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/4.jpg)
4
Review: Set Instruksi (Bahasa Mesin)
0745: Add (4),(5),(7) ; [7] [4] + [5]
° Bahasa Mesin kumpulan bit yang merepresentasikan Operasi & Operand
° Bahasa Rakitan representasi dari Bahasa Mesin dalam bahasa (kumpulan huruf & angka) yang lebih mudah dimengerti oleh manusia
mnemonic
![Page 5: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/5.jpg)
5
Eksekusi Instruksi
![Page 6: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/6.jpg)
6
Eksekusi Instruksi (1/2)
° Instruksi dan data bersama-sama berada di memori:• Data diakses secara acak (tergantung alamat operand)• Instruksi umumnya dijalankan secara berurut (sekuensial)
° Urutan ini menjamin logika alur program: terdapat urutan perintah ke mesin.
• Instruksi disimpan secara berurut pada lokasi di memori• Eksekusi instruksi dilakukan mulai dari alamat terkecil
° Bagaimana mengetahui “posisi” instruksi saat ini (berikutnya?)
• Gunakan register khusus: Program Counter
![Page 7: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/7.jpg)
7
Eksekusi Instruksi (2/2)
0 Add 4,5,71 Sub 6,7,82 …34 0 0 6 15 0 0 1 76 0 0 0 37 0 0 0 08 0 0 0 09 0 0 0 0
PC (Program Counter)
2
Program couter (PC) berisi alamat lokasiinstruksi yang akan dieksekusi padasiklus berikutnya.Setelah instruksi dieksekusi, makaPC akan “increment” dan menunjukpada instruksi berikutnya (next location)PC = PC + 1; dst
.. dikenal dengan istilah: straight line sequencing
![Page 8: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/8.jpg)
8
Branching
![Page 9: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/9.jpg)
9
Decision…
° Instruksi aritmatika, transfer data memberikan kemampuan kita untuk melakukan komputasi data
• Sama seperti “kalkulator”
° Untuk sebuah komputer, maka diperlukan kemampuan untuk memilih, “make decisions” ..
° Analogi HLL: assembly language harus mendukung statement:
if (condition == true) do “this”;else do “that”;exit;
Exit
i == j?
“this”
(false) i != j
(true) i == j
“that”
![Page 10: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/10.jpg)
10
Branching° Dampak dari pengambilan keputusan yang
bergantung pada suatu kondisi tertentu adalah terjadinya pencabangan (branching):
• Instruksi tidak lagi diambil dari lokasi memori yang “berurut”, tetapi “meloncat” ke lokasi memori tertentu PC diisi dengan nilai baru, tidak di-increment
° Manipulasi PC dengan memberikan alamat baru (tidak “berurut”) juga digunakan untuk mengubah alur eksekusi program tanpa bergantung pada kondisi tertentu (jump)
![Page 11: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/11.jpg)
11
Branching: Contoh
ii+1i+2
i+n-1i+n
SUMNum1Num2
NumN
Move Num1,R0Add Num2,R0
Alamat
Add Num3,R0
Mov R0,SUMAdd NumN,R0
LOOP
SUMNNum1Num2
NumN
Move N,R1Clear R0
Determine address ofnext number and addNext number to R0
Alamat
n
Move R0,SUMBranch>0 LOOPDecrement R1
R0 = ∑ Ni
![Page 12: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/12.jpg)
12
Condition Codes
° Informasi yang berkaitan dengan hasil operasi (terutama Aritmatika & Logika) disimpan dalam “Condition Code Flags”
° Kumpulan “CC Flags” Register CC/Status
° Masing-masing bit dari Register CC/Status merepresentasikan:• N (negative): perhitungan sebelumnya menghasilkan
bilangan negatif• Z (zero): perhitungan sebelumnya menghasilkan bilangan 0• V (overflow): perhitungan sebelumnya menyebabkan
overflow• C (carry): perhitungan sebelumnya menghasilkan carry-out
° Contoh Penggunaan:LOOP: . . .
Decrement R1 ; R1 [R1] - 1
Branch>0 LOOP ; if (Z != 0) then LOOP
![Page 13: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/13.jpg)
13
Modus Pengalamatan
![Page 14: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/14.jpg)
14
Modus Pengalamatan (1/2)
Jenis Syntax Effective Address
1. Immediate: #Value ; Operand = Value
Add #10,R1 ; R1 [R1] + 10
2. Register: Ri ; EA = Ri
Add R2,R1 ; R1 [R1] + [R2]
3. Absolute (Direct): LOC ; EA = LOC
Add 100,R1 ; R1 [R1] + [100]
4. Indirect-Register: (Ri) ; EA = [Ri]
Add (R2),R1 ; R1 [R1] + [[R2]]
Indirect-Memory: (LOC) ; EA = [LOC]
Add (100),R1 ; R1 [R1] + [[100]]
![Page 15: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/15.jpg)
15
Modus Pengalamatan (2/2)
5. Index: X(R2) ; EA = [R2] + X
Add 10(R2),R1 ; R1 [R1] + [[R2]+10]
Base+Index: (R1,R2) ; EA = [R1] + [R2]
Add (R1,R2),R3 ; R3 [R3] + [[R1]+[R2]]
Base+Index+Offset: X(R1,R2) ; EA = [R1] + [R2] + X
Add 10(R1,R2),R3 ; R3 [R3] + [[R1]+[R2]+10]
6. Relative: X(PC) ; EA = [PC] + X
Beq 10 ; if (Z==1) then PC [PC]+10
7. Autoincrement: (Ri)+ ; EA = [Ri], Increment Ri
Add (R2)+,R1 ; R1 [R1] + [[R2]],; R2 [R2] + d
8. Autodecrement: -(Ri) ; Decrement Ri, EA = [Ri]
Add -(R2),R1 ; R2 [R2] – d,; R1 [R1] + [[R2]]
![Page 16: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/16.jpg)
16
Absolute (Direct) Mode
° Absolute: Add 100,R1 ; R1 [R1] + [100]
100
200 …
Add 100,R1
88
88R1
![Page 17: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/17.jpg)
17
Immediate vs. Absolute
100
150 99
LD 150,R1
88
99R1
VS.
150R1
Move 150R1
Move 150,R1 ; R1 [EA]; EA = 150
Move #150,R1 ; R1 150 ; EA = none
![Page 18: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/18.jpg)
18
Indirect Mode
° Indirect-Register: Add (R2),R1 ; R1 [R1] + [[R2]]
° Indirect-Memory: Add (100),R1 ; R1 [R1] + [[100]]
100
200 Operand
Add (100),R1
200 100
200 Operand
Add (R2),R1
200R2pointer
![Page 19: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/19.jpg)
19
Register vs. Indirect-Register
Move (R2),R1 ; R1 [EA]
; EA = [R2]
100
150 99
LD (R2),R1
88
100R2
88R1
Move R2,R1 ; R1 R2 ; EA = addr. of
R2100R2
100R1
VS.
![Page 20: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/20.jpg)
20
Immediate vs. Absolute vs. Indirect-MemoryMove (150),R1; R1
[EA]; EA =
[150]
100
150 99
LD 150,R1
88
99R1
VS.
150R1
Move 150R1
Move 150,R1 ; R1 [EA]; EA = 150
Move #150,R1 ; R1 150 ; EA = none
99100
150 99
LD (150),R1
88
7R1
7
![Page 21: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/21.jpg)
21
Indirect Mode: Contoh
Move N,R1 ; number of items
Move #Num1,R2 ; points to 1st item
Clear R0
LOOP Add (R2),R0 ; R0 stores the sum
Add #4,R2 ; point to the next item
Decrement R1
Branch>0 LOOP ; go to LOOP if not done
Move R0,SUM ; done!
LOOP
SUMNNum1Num2
NumN
Move N,R1Clear R0
Determine address ofnext number and addNext number to R0
Alamat
n
Move R0,SUMBranch>0 LOOPDecrement R1
![Page 22: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/22.jpg)
22
Index Mode: Contoh
Move #LIST,R0
Clear R1
Clear R2
Clear R3
Move N,R4
LOOP Add 4(R0),R1
Add 8(R0),R2
Add12(R0),R3
Add #16,R0
Decrement R4
Branch>0 LOOP
Move R1,SUM1
Move R2,SUM2
Move R3,Sum3
NLISTLIST+4LIST+8LIST+12
SUM1SUM2SUM3
nStudent ID
Alamat
Student ID
Test 1Test 2Test 3
Test 1Test 2
![Page 23: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/23.jpg)
23
Relative AddressingMove #LIST,R0
Clear R1
Clear R2
Clear R3
Move N,R4
LOOP Add 4(R0),R1
Add 8(R0),R2
Add12(R0),R3
Add #16,R0
Decrement R4
Branch>0 LOOP
Move R1,SUM1
Move R2,SUM2
Move R3,Sum3
Hasil perakitan:
Branch>0 –24 ; LOOP = PC - 24
![Page 24: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/24.jpg)
24
Auto-{in|de}crement Mode
Move N,R1
Move #Num1,R2
Clear R0
LOOP Add (R2)+,R0 ; R0 [R0] + [[R2]],
; R2 R2 + d
; tipe data: byte d = 1
; tipe data: word d = 2
Decrement R1 ;
Branch>0 LOOP ;
Move R0,SUM
…
![Page 25: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/25.jpg)
25
Instruksi I/O
![Page 26: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/26.jpg)
26
Organisasi Input/Output
Prosesor
Bus
SOUT
DATAOUT
Display
SIN
DATAIN
Keyboard
° I/O Device biasanya memiliki 2 register:• 1 register menyatakan kesiapan untuk menerima/mengirim data
(I/O ready), sering disebut Status/Control Register SIN, SOUT• 1 register berisi data, sering disebut Data Register DATAIN, DATAOUT
° Prosesor membaca isi Status Register terus-menerus, menunggu I/O device men-set Bit Ready di Status Register (0 1)
° Prosesor kemudian menulis atau membaca data ke/dari Data Register
• tulis/baca ini akan me-reset Bit Ready (1 0) di Status Register
![Page 27: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/27.jpg)
27
Contoh Program Input/Output
° Input: Read from keyboard Move #LOC,R0 ; Initialize memory
READ: TestBit #3,INSTATUS ; Keyboard (IN) ready?
Branch=0 READ ; Wait for key-inMove DATAIN,(R0) ; Read character
° Output: Write to displayECHO: TestBit #3,OUTSTATUS; Display (OUT) ready?
Branch=0 ECHO ; Wait for itMove (R0),DATAOUT; Write characterCompare #CR,(R0)+ ; Is it CR?
; Meanwhile, stores it
Branch≠0 READ ; No, get moreCall Process ; Do something
![Page 28: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/28.jpg)
28
Stacks, Subroutine Calls
![Page 29: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/29.jpg)
29
Stacks
° Lokasi memori yang pengaksesan datanya dibatasi dengan cara LIFO (Last In, First Out)
data terakhir yang disimpan kedalam stack akan menjadi data pertama yang diperoleh pada saat stack diakses
° Push: memasukkan data ke Stack
° Pop: mengeluarkan data yang berada di top-of-stack (TOS)alamat TOS disimpan dalam register Stack Pointer
(SP)0
2k-1
Top-of-Stack: SP
Bottom-of-Stack
Stack
Push
Pop
![Page 30: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/30.jpg)
30
Operasi pada Stacks
Push NewItem: Subtract #4,SP
Move NewItem,(SP)
19
17-28
-28
SP
19
17
19-28
SP
NewItemItem
NewItemItem
Pop Item: Move (SP),Item
Add #4,SP
Bahaya Overflow
Bahaya Underflow
SPold
SPold
![Page 31: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/31.jpg)
31
SubRoutines° SubRoutine adalah sekumpulan instruksi yang mengerjakan suatu fungsi tertentu dan diakhiri dengan instruksi RETURN
° SubRoutine biasanya dipanggil (CALL) oleh program lain dan setelah SubRoutine selesai mengerjakan fungsinya, kendali program dikembalikan (RETURN) ke program pemanggil
Lokasi Program Utama
200 Call SUB
201instruksi_berikutnya
Lokasi Subroutine SUB
1000 instruksi_i
. . .
Return
201PC
Link
1000
201
![Page 32: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/32.jpg)
32
SubRoutine Call & Stacks
Lokasi Program Utama
200 Push R1
201 Call SUB
202 Pop R1
203 instruksi_berikutnya
Lokasi Subroutine SUB
1000 instruksi_i
. . .
Add R1,R2
. . .
Return
1000PC
SP99202
Setelah ‘Call SUB’
99R1
202PC
SP 99202
Setelah ‘Return’
57R1
203PC
SP99
202
Setelah ‘Pop R1’
99R1
…
![Page 33: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/33.jpg)
33
Lokasi Program Utama
200 Move N,R1
201 Move#NUM1,R2
202 CallLISTADD
203 MoveRO,SUM
…
Lokasi Subroutine LISTADD
LISTADD Clear R0
LOOP Add (R2)+,R0
Decrement R1
Branch>0 LOOP
Return
Passing Parameters via Registers
° Via Registers:• Caller & Subroutine share the same registers• Passing by Value: n ([N]) via R1• Passing by Reference: NUM1 via R2
Contoh:…int sum;int n = 112;int[ ] num1 = new int[n];…sum = ListAdd(n, num1);
![Page 34: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/34.jpg)
34
Lokasi Program Utama
Push #NUM1
Push N
CallLISTADD
Move4(SP),SUM
Add #8,SP
…
Lokasi Subroutine LISTADD
LISTADD Push R0
Push R1
Push R2
Move 16(SP),R1
Move 20(SP),R2
Clear R0
LOOP Add (R2)+,R0
Decrement R1
Branch>0 LOOP
Move R0,20(SP)
Pop R2
Pop R1
Pop R0
Return
Passing Parameters via Stack Frame
PC (prg. Utama)R0
R2R1
nNUM1
SPSP+4SP+8SP+12SP+16SP+20
SPSP+4
![Page 35: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/35.jpg)
35
Nested Subrouines
Stacking of Subroutine Calls & Returns and Environments:
A: CALL B
CALL C
C: RET
RET
B:
A
A B
A B C
A B
A
![Page 36: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/36.jpg)
36
Contoh Program
![Page 37: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/37.jpg)
37
Contoh Program: Vector Dot Product
Dot Procut = ∑ Ai x Bi
Move #AVEC,R1 ; R1 points to vector A.
Move #BVEC,R2 ; R2 points to vector B.
Move N,R3 ; R3 serves as a counter.
Clear R0 ; R0 accumulates the product.
LOOP: Move (R1)+,R4 ; Compute the product of
Multiply (R2)+,R4 ; next components.
Decrement R3 ; Decrement the counter.
Branch>0 LOOP ; Loop again if not done.
Move R0,DOTPROD ; Store the product in memory.
![Page 38: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/38.jpg)
38
Contoh Program: Byte Sorting (Algoritme)
for (j = n – 1; j > 0; j = j – 1)
{ for (k = j – 1; k >= 0; k = k – 1)
{ if (LIST[k] > LIST[j])
{ TEMP = LIST[k];
LIST[k] = LIST[j];
LIST[j] = TEMP;
}
}
}
3 8 2 1 4 7 6 5
3 7 2 1 4 6 5 8
Kondisi Awal:
Setelah Iterasi ke-1:
![Page 39: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/39.jpg)
39
Contoh Program: Byte SortingMove #LIST,R0 ; R0 points to the list LIST.Move N,R1 ; Initialize outer loop index.Subtract #1,R1 ; register R1 to j = n - 1.
OUTER: Move R1,R2 ; Initialize inner loop index.Subtract #1,R2 ; register R2 to k = j – 1.MoveB (R0,R1),R3 ; Load LIST(j) into R3,
; which holds current max.INNER: CompareB R3,(R0,R2) ; If LIST(k) [R3],
Branch≤0 NEXT ; do not exchange.MoveB (R0,R2),R4 ; Otherwise, exchange LIST(k)MoveB R3,(R0,R2) ; with LIST(j) and loadMoveB R4,(R0,R1) ; new max. into R3.MoveB R4,R3 ; Reg. R4 servers as TEMP.
NEXT: Decrement R2 ; Decrement inner loop index.Branch≥0 INNERDecrement R1 ; Decrement outer loop index.Branch>0 OUTER
![Page 40: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/40.jpg)
40
Linked Lists
![Page 41: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/41.jpg)
41
New Record
Linked Lists
Record 1 Record 2 Record k
Head Tail
Link Address
Record 1 Record 2
Menambahkan record baru:
![Page 42: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/42.jpg)
42
Linked Lists: Alokasi Memori
100 1
104 160
108 95
112 80
116 80
…
160 2
164 210
168 55
172 60
176 50
…
…
1024 112
1028 0
1032 100
1036 100
1040 100
Head
Tail
Key field (ID)
Link field
Data field
![Page 43: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/43.jpg)
43
Pengkodean Informasi: Instruksi (1/2)
m bit n bit
Kode Operasi
Informasi Lokasi Operand:dimana data masukan bersumber dan/ataudimana hasil operasi disimpan
Variable:
Fixed:
Hybrid:
……
Format Ukuran Instruksi:
![Page 44: IKI10230 Pengantar Organisasi Komputer Kuliah no. 3: Machine Instructions](https://reader035.vdocuments.net/reader035/viewer/2022062221/568144f7550346895db1c3f5/html5/thumbnails/44.jpg)
44
Pengkodean Informasi: Instruksi (2/2)
OP code Source Destination Other info
108 7 7
OP code Source Destination Other info
108 7 7
Memory address/Immediate operand
Format 1-word:
Format 2-word: