TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

83
Pokok Bahasan: Instruction Sets Addressing Modes & Format Disusun oleh: Sutriono Azhari rahmadi lubis Eka cahya UNIVERSITAS INDRAPRASTA PGRI JAKARTA TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

description

TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER. Pokok Bahasan : Instruction Sets Addressing Modes & Format Disusun oleh : Sutriono Azhari rahmadi lubis Eka cahya UNIVERSITAS INDRAPRASTA PGRI JAKARTA. BAB I INSTRUCTION SETS. Apakah instruksi set itu ? Elemen-elemen instruksi - PowerPoint PPT Presentation

Transcript of TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Page 1: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Pokok Bahasan: • Instruction Sets

• Addressing Modes & Format

Disusun oleh:Sutriono

Azhari rahmadi lubisEka cahya

UNIVERSITAS INDRAPRASTA PGRI JAKARTA

TEMA:ARSITEKTUR DAN

ORGANISASI KOMPUTER

Page 2: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Apakah instruksi set itu?Elemen-elemen instruksiMacam-macam instruksiBerapa banyak address digunakan?Macam-macam operandMacam-macam operasi

BAB IINSTRUCTION SETS

Page 3: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Kumpulan dari instruksi-instruksi yang berbeda yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set).

Operasi dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine instructions) atau instruksi komputer (computer instructions).

Apakah Instruksi set itu?

Page 4: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Operation Code (opcode) : menentukan operasi yang akan dilaksanakan

Source Operand Reference : merupakan input bagi operasi yang akan dilaksanakan

Result Operand Reference : merupakan hasil dari operasi yang dilaksanakan

Next instruction Reference : memberitahu CPU untuk mengambil (fetch) instruksi berikutnya setelah instruksi yang dijalankan selesai.

ELEMEN-ELEMEN DARI INSTRUKSI MESIN (SET INSTRUKSI)

Page 5: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Macam-macam instruksi ada 2,yaitu:1. menurut jumlah operasi yang di-

spesifikasikan2. menurut sifat akses terhadap memori

atau register

Macam-macam Instruksi

Page 6: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

1. O – Address Instruction2. 1 – Addreess Instruction.3. N – Address Instruction4. M + N – Address Instruction

Macam-macam instruksi menurut jumlah operasi yang di-spesifikasikan

Page 7: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

1. Memori To Register Instruction2. Memori To Memori Instruction3. Register To Register Instruction

Macam-macam instruksi menurut sifat akses terhadap memori atau register

Page 8: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

1. Data processing: Arithmetic dan Logic Instructions2. Data storage: Memory instructions3. Data Movement: I/O instructions4. Control: Test and branch instructions

Jenis instruksi

Page 9: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

A. Data processing arithmatic

Tindakan CPU untuk melakukan operasi arithmetic : 1. Transfer data sebelum atau sesudah. 2. Melakukan fungsi dalam ALU. 3. Menset kode-kode kondisi dan flag. Operasi set instruksi untuk arithmetic : 1. ADD : penjumlahan 5. ABSOLUTE 2. SUBTRACT : pengurangan 6. NEGATIVE 3. MULTIPLY : perkalian 7. DECREMENT 4. DIVIDE : pembagian 8. INCREMENT Nomor 5 sampai 8 merupakan instruksi operand tunggal.

1. Data Processing Arithmatic & Logic Instruction

Page 10: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

B. Data processing logic instruction

Tindakan CPU sama dengan arithmetic Operasi set instruksi untuk operasi logical : 1. AND, OR, NOT, EXOR 2. COMPARE : melakukan perbandingan logika. 3. TEST : menguji kondisi tertentu. 4. SHIFT : operand menggeser ke kiri atau kanan

menyebabkan konstanta pada ujung bit. 5. ROTATE : operand menggeser ke kiri atau ke kanan

dengan ujung yang terjalin.

1. Data Processing Arithmatic & Logic Instruction

Page 11: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Tindakan CPU sama dengan arithmetic dan logical. Instruksi yang mengubah format instruksi yang beroperasi

terhadap format data. Misalnya pengubahan bilangan desimal menjadi bilangan

biner. Operasi set instruksi untuk conversi : 1. TRANSLATE : menterjemahkan nilai-nilai dalam suatu

bagian memori berdasarkan tabel korespodensi. 2. CONVERT : mengkonversi isi suatu word dari suatu

bentuk ke bentuk lainnya.

2. DATA STORAGE MEMORI INTRUCTION

Page 12: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Tindakan CPU untuk melakukan INPUT /OUTPUT : 1. Apabila memory mapped I/O maka menentukan alamat memory mapped. 2. Mengawali perintah ke modul I/O Operasi set instruksi Input / Ouput : 1. INPUT : memindahkan data dari perangkat I/O tertentu

ke tujuan 2. OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O 3. START I/O : memindahkan instruksi ke prosesor I/O

untuk mengawali operasi I/O 4. TEST I/O : memindahkan informasi dari sistem I/O ke

tujuan

3. DATA MOVEMENT INPUT / OUPUT INSTRUCTION

Page 13: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Desain set instruksi merupakan masalah yangsangat komplek yang melibatkan banyak

aspek,diantaranya adalah:1. Kelengkapan set instruksi2. Ortogonalitas (sifat independensi instruksi)3. Kompatibilitas : - Source code compatibility - Object code Compatibility

Desain set instruksi

Page 14: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:1. Operation Repertoire: Berapa banyak dan

operasi apa saja yang disediakan, dan berapa sulit operasinya

2. Data Types: tipe/jenis data yang dapat olah Instruction Format: panjangnya, banyaknya

alamat, dsb.3. Register: Banyaknya register yang dapat

digunakan4.Addressing: Mode pengalamatan untuk operand

Page 15: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Suatu instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format Instruksi (Instruction Format).

Format Instruksi

Page 16: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

JUMLAH ALAMAT (NUMBER OF ADDRESSES)

Salah satu cara tradisional untuk menggambarkan arsitektur prosessor adalah dengan melihat jumlah alamat yang terkandung dalam setiap instruksinya.

Jumlah alamat maksimum yang mungkin diperlukan dalam sebuah instruksi :

1. Empat Alamat ( dua operand, satu hasil, satu untuk alamat instruksi berikutnya) 2. Tiga Alamat (dua operand, satu hasil) 3. Dua Alamat (satu operand merangkap hasil, satunya lagi operand) 4. Satu Alamat (menggunakan accumulator untuk menyimpan operand dan hasilnya)

Jumlah alamat yang digunakan

Page 17: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Addresses (akan dibahas pada addressing modes)

Numbers : - Integer or fixed point - Floating point - Decimal (BCD) Characters : - ASCII - EBCDIC Logical Data : Bila data berbentuk

binary: 0 & 1

Macam-macam Operand

Page 18: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Menetapkan lokasi operand sumber dan operand tujuan. Lokasi-lokasi tersebut dapat berupa memori, register atau

bagian paling atas daripada stack. Menetapkan panjang data yang dipindahkan. Menetapkan mode pengalamatan. Tindakan CPU untuk melakukan transfer data

adalah : a. Memindahkan data dari satu lokasi ke lokasi lain. b. Apabila memori dilibatkan : Menetapkan alamat memori. Menjalankan transformasi alamat memori virtual ke

alamat memori aktual. Mengawali pembacaan / penulisan memori

Tranfer Data

Page 19: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Operasi set instruksi untuk transfer data : MOVE : memindahkan word atau blok dari sumber ke

tujuan STORE : memindahkan word dari prosesor ke memori. LOAD : memindahkan word dari memori ke prosesor. EXCHANGE : menukar isi sumber ke tujuan. CLEAR / RESET : memindahkan word 0 ke tujuan. SET : memindahkan word 1 ke tujuan. PUSH : memindahkan word dari sumber ke bagian paling

atas stack. POP : memindahkan word dari bagian paling atas sumber

Page 20: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Source dan result operands dapat berupa salah

Satu diantara tiga jenis berikut ini:Main or Virtual MemoryCPU RegisterI/O Device

Page 21: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Macam-macam Operasi

Page 22: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Model-model addressingDirect and Indirect AddressingRegister AddressingInstruction Format

BAB IIADDRESSING MODES & FORMAT

Page 23: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Jenis-jenis addressing modes (Teknik Pengalama-tan) yang paling umum:ImmediateDirectIndirectRegisterRegister IndirectDisplacementStack

ADDRESSING MODES

Page 24: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Tabel Basic Addressing Modes

Page 25: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Gambar Addressing Mode

Page 26: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Immediate AddressingOperan adalah bagian dari instruksi

Operan = alamat lapanganmisalnya Masukkan 5Tambahkan 5 untuk isi akumulator5 adalah operanTidak ada referensi memori untuk mengambil datacepatketerbatasan

Page 27: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Immediate Addressing Diagram

OperandOpcode

Instruction

Page 28: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Direct AddressingAddress field berisi alamat dari operan

Alamat Efektif (EA) = alamat lapangan (A)misalnya ADD ATambahkan isi sel A ke akumulatorLihat dalam memori pada alamat A untuk operandReferensi memori tunggal untuk mengakses dataTidak ada tambahan perhitungan untuk bekerja di luar alamat efektifTerbatas ruang alamat

Page 29: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Direct Addressing Diagram

Address AOpcode

Instruction

Memory

Operand

Page 30: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Indirect Addressing (1)Sel memori yang ditunjuk oleh field alamat

berisi alamat (pointer ke) operanEA = (A)Lihat dalam A, menemukan alamat (A) dan tampak di sana untuk operanmisalnya ADD (A)Tambahkan isi sel ditunjukkan oleh isi dari A ke akumulator

Page 31: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Indirect Addressing (2)Besar ruang alamat

2n dimana n = kata panjangBisa diulang, bertingkat, mengalirmisalnya EA = (((A)))Gambarlah diagram diriMemori rangkap mengakses untuk menemukan operanOleh karena itu lebih lambat

Page 32: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Indirect Addressing DiagramAddress AOpcode

Instruction

Memory

Operand

Pointer to operand

Page 33: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Register Addressing (1)Operan diadakan di daftar alamat yang

disebutkan dalam mengajukanEA = RTerbatas jumlah registerSangat kecil alamat lapangan diperlukanShorter instruksiInstruksi lebih cepat mengambil

Page 34: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Register Addressing (2)Tidak ada akses memori

Sangat cepat eksekusiSangat terbatas ruang alamatBeberapa register membantu kinerjaMembutuhkan pemrograman perakitan baik atau menulis compilerN.B. pemrograman Cmendaftar int a;c.f. langsung mengatasi

Page 35: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Register Addressing Diagram

Register Address ROpcode

Instruction

Registers

Operand

Page 36: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Register Indirect AddressingC.f. tidak langsung menangani

EA = (R)Operan dalam sel memori yang ditunjuk oleh isi dari register RAlamat yang besar ruang (2n)Satu lebih sedikit memori akses langsung dari pengalamatan

Page 37: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Register Indirect Addressing Diagram

Register Address ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Page 38: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Displacement AddressingEA = A + (R)

Address field memegang dua nilaiSebuah nilai dasar =R = register yang memegang perpindahanatau sebaliknya

Page 39: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Displacement Addressing Diagram

Register ROpcode

Instruction

Memory

OperandPointer to Operand

Registers

Address A

+

Page 40: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Relative AddressingSebuah versi dari perpindahan menangani

R = Program counter, PCEA = A + (PC)yaitu mendapatkan operan dari A sel dari lokasi saat ini ditunjuk oleh PCc.f lokalitas penggunaan referensi & Cache

Page 41: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Base-Register AddressingSebuah memegang perpindahan

R memegang pointer ke alamat dasarR dapat menjadi eksplisit atau implisitmisalnya segmen register di 80x86

Page 42: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Indexed Addressing A = dasar

R = perpindahanEA = A + RBaik untuk mengakses arrayEA = A + RR + +

Page 43: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

CombinationsPostindexEA = (A) + (R)

PreindexEA = (A+(R))

(Draw the diagrams)

Page 44: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Stack Addressing Operan adalah (secara implisit) di atas tumpukan

misalnyaMasukkan Pop atas dua item dari stack dan tambahkan

Page 45: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

x86 Addressing Modes Alamat virtual atau efektif adalah offset ke dalam

segmenAlamat awal ditambah diimbangi memberikan alamat linierIni berjalan melalui terjemahan halaman jika paging diaktifkan12 mode pengalamatan yang tersediasegeraDaftar operanpemindahandasarBase dengan perpindahanScaled indeks dengan perpindahanDasar dengan indeks dan perpindahanBasis skala indeks dengan perpindahanrelatif

Page 46: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

x86 Addressing Mode Calculation

Page 47: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

ARM Addressing ModesLoad/Store Hanya petunjuk yang referensi memori

Secara tidak langsung melalui register dasar ditambah diimbangimengimbangiOffset ditambahkan ke atau dikurangkan dari isi register dasar untuk membentuk alamat memoriPreindexAlamat memori dibentuk sebagai untuk mengatasi mengimbangiAlamat memori juga ditulis kembali ke base registerJadi base register nilai bertambah atau decremented oleh nilai offsetPostindexAlamat memori adalah nilai base registerOffset Hasil ditambahkan atau dikurangi ditulis kembali ke base registerBase register bertindak sebagai daftar indeks untuk preindex dan postindex menanganiOffset baik nilai langsung dalam instruksi atau mendaftar lainJika mendaftar skala mendaftar mengatasi tersediaOffset mendaftar nilai ditingkatkan oleh operator pergeseranInstruksi menentukan ukuran pergeseran

Page 48: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

ARM Indexing Methods

Page 49: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

ARM Data Processing Instruction Addressing& Branch InstructionsPengolahan Data

Daftar menanganiNilai dalam operan mendaftar dapat ditingkatkan menggunakan operator pergeseranAtau campuran dari register dan segera menanganicabangsegeraInstruksi berisi 24 nilai bitBergeser meninggalkan 2 bitPada batas kataJarak efektif + /-32MB dari PC.

Page 50: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

ARM Load/Store Multiple AddressingLoad / store bagian dari tujuan umum

register16-bit bidang instruksi menetapkan daftar registerSequential kisaran alamat memoriSelisih setelah, kenaikan sebelumnya, setelah pengurangan, dan pengurangan sebelumBase register menentukan alamat memori utamaIncrementing atau decrementing dimulai sebelum atau setelah akses memori pertama

Page 51: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

ARM Load/Store Multiple Addressing Diagram

Page 52: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Format Instruksi

Siklus : fetch – decode – execute decoder : didesain permanen format instruksi sudah tentu

Opcode : bilangan biner tak bertanda operasi yang harus dilakukan oleh komputer. himpunan opcode : instruction set atau machine language i bit / op code maksimum 2i operasi

Address fields : operan atau alamat operan jumlah operan tiap instruksi pengelompokan instruction set

Modifiers jumlah & interpretasi spesifik thd mesin

Op Code Address field Address field . . .

Page 53: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Four-address format

Terdapat empat field alamat dalam satu instruksi :Operan kiri dalam operasi binaryOperan kanan dalam operasi binaryHasil operasiInstruksi berikutnya yang akan dieksekusi

Page 54: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Four-address formatContoh

A := B + C – Dartinya1. T B + C ; go to 22. A T – D ; go to next addr

ADD Address of B Address of C Address oftemporary location T21 101

Address Op Code Left Operand Right Operand Result Next Inst

SUB Address of T Address of D Address of A101 next addr

...

Page 55: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Four-address formattidak pernah digunakan ukuran instruksinya terlalu besar. 2i jenis op code, 2n lokasi memori panjang

tiap instruksi : i + 4n.

Contoh : i = 8 (256 op code) dan n = 24 (16 juta lokasi

memori) ukuran tiap instruksi = 104 bit (13 byte)

terlalu panjang

Page 56: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Three-address formatMenghilangkan field alamat terakhir (next

instruction) : Operan kiri dalam operasi binary Operan kanan dalam operasi binary Hasil operasi

Setelah eksekusi instruksi pada alamat L : (konsensus)

Instruksi berikut : [L + 1], kecuali dispesifikasikan lain secara eksplisit.

1 instruksi = k sel memori instruksi berikut : [L + k]

Page 57: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Three-address format

Contoh : A := B + C – D

instruksi diletakkan secara berurutan.

ADD Address of B Address of C Address oftemporary location T100

Op Code Left Operand Right Operand Result

SUB Address of T Address of D Address of A101

Page 58: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Three-address formatDampak pada desain komputer : (Secara umum) program akan disimpan secara

berurut dalam suatu blok lokasi memori. Register khusus dalam CU untuk memantau

alamat instruksi yang akan dieksekusi berikutnya PC (Program Counter).

Instruksi untuk membelokkan alur eksekusi default (sekuensial); definisi secara eksplisit branching instructions.

Page 59: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Two-address formatPerpendek ukuran instruksi hilangkan field result : Operan kiri dalam operasi binary Operan kanan dalam operasi binary

Perjanjian : hasil operasi disimpan ke dalam suatu tempat tertentu. Hasil operasi disimpan ke salah satu alamat yang sama dengan operan kiri atau operan kanan. Asumsi : field alamat pertama operan kiri & lokasi hasil :ADD Address of B Address of C ≡ B := B + C

Jangan sampai operan yang masih dibutuhkan oleh operasi lain tertimpa oleh suatu hasil operasi! gunakan lokasi memori temporary

Page 60: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Two-address formatContoh : A := (B + C) / (B - D)

lebih dari satu kemungkinan urutan instruksi

MOVE Address of T1Address of B100

Op Code Left OperandRight Operand

ADD Address of T1Address of C101

MOVE Address of T2Address of B102

SUB Address of T2Address of D103

DIV Address of T1Address of T2104

MOVE Address of AAddress of T1105

T1 B

T1 T1 + C

T2 B

T2 T2 + D

T1 T1 / T2

A T1

Page 61: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Two-address formatInstruction* Meaning

MOVE d,s CON(d) CON(s)

MOVEI d,v CON(d) v

ADD d,s CON(d) CON(d) + CON(s)

INC s CON(s) CON(s) + 1

SUB d,s CON(d) CON(d) - CON(s)

DEC s CON(s) CON(s) – 1

MUL d,s CON(d) CON(d) * CON(s)

DIV d,s CON(d) CON(d) / CON(s)

COMP s,d Compare CON(s) to CON(d)Set EQ, GT, LT flags based on the value of the compare. Do not change the content of

either s or d

BEQ address Branch to address if EQ flag is ON

BLT address Branch to address if LT flag is ON

BGT address Branch to address if GT flag is ON

BR address Branch to address

INP address Input a single sharacter and store it in the indicated memory address

OUT address Output the content of the indicated memory address in a proper character-oriented format

Page 62: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Contoh

Buatlah Program dalam Format Instruksi Two-Address untuk menghitung Faktor Persekutuan Terbesar (FPB) dari 2 bilangan bulat.

Page 63: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

FPB

Input(A)Input(B)Repeat

R A mod BIf R ≠ 0 thenA BB R

Until (R=0)Output (B)

Page 64: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

FPB : TWO-ADDRESS FORMAT

MOVEI C, 0 ; CON(C) 0MOVEI A, 15 ; CON(A) 15MOVEI B, 12 ; CON(A) 12

LOOP1 SUB A, B ; CON(A) CON(A) – CON(B)COMP A, B ; COMPARE CON(A) VS CON(B)BGT LOOP1 ; LOMPAT KE LOOP1 IF BG = 1COMP A, C ; COMPARE CON(A) VS CON(C)BEQ END ; LOMPAT KE END IF EQ = 1MOVE D, B ; CON(D) CON(B)MOVE B, A ; CON(B) CON(A)MOVE A, D ; CON(A) CON(D)BR LOOP1 ; LOMPAT KE LOOP1

END OUT B ; TAMPILKAN CON(B)

Page 65: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

One-address formatUntuk operasi monadic, dapat

digunakan secara mandiri. Untuk operasi dyadic perjanjian :

tempat operan kedua. Biasanya operan kedua dan hasil operasi ditempatkan pada suatu general purpose register tertentu.

Page 66: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

One-address format

Contoh : ADD operan kedua dan hasil berada

pada register R0 :

≡ CON(R0) CON(A) + CON(R0)

ADD Address of A

Page 67: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

One-address format

A := B + C – D

LOAD Address of B

ADD Address of C

SUB Address of D

STORE Address of A

R0 B

R0 R0 + C

R0 R0 - D

A R0

100

101

102

103

Page 68: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

One-address formatInstruction* Meaning

LOAD a CON(R) CON(a)

LOADI v CON(R) v

STORE a CON(a) CON(R)

ADD a CON(R) CON(a) + CON(R)

INC a CON(a) CON(a) + 1

SUB a CON(R) CON(a) - CON(R)

DEC a CON(s) CON(s) – 1

MUL s CON(R) CON(s) * CON(R)

DIV a CON(R) CON(a) / CON(R)

BEQ address Branch to address if CON(R) = 0

BPOS address Branch to address if CON(R) > 0

BNEG address Branch to address if CON(R) < 0

BR address Branch to address

INP address Input a single sharacter and store it in the indicated memory address

OUT address Output the content of the indicated memory address in a proper character-oriented format

Page 69: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Zero-address formatOperan diasumsikan telah berada di suatu

tempat tidak perlu dispesifikasikan di dalam instruksi

Hasil operasi akan diletakkan ditempat tertentu

Lokasi spesifik sekumpulan lokasi memori khusus yang disebut stack.

stack pointer (atau TOP) : menunjuk elemen teratas dari stack. (Dalam beberapa kasus TOP menunjuk pada lokasi kosong pertama diatas elemen teratas).

Page 70: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Zero-address format

Operasi :PUSH : menambahkan

elemen pada stack diatas elemen teratas

POP : mengambil elemen teratas dari stack.

C

B

A

TOP

Stack

Page 71: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Zero-address formatADD ambil dua elemen teratas dari

stack, jumlahkan dan kembalikan hasil penjumlahan ke stack.

A := (B + C) – D

PUSH Address of D

PUSH Address of C

PUSH Address of B

ADD

100

101

102

103

SUB104

POP Address of A105

Page 72: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Zero-address formatInstruction* Meaning

PUSH a Top of stack CON(a)

PUSHI v Top of stack v

POP a CON(a) Top of stack

ADD Top of stack CON(Top) + CON(Top-1)The original operands are removed

SUB Top of stack CON(Top) - CON(Top-1)The original operands are removed

MULT Top of stack CON(Top) * CON(Top-1)The original operands are removed

DIVIDE Top of stack CON(Top) / CON(Top-1)The original operands are removed

TEST Check the top of the stack. Set the EQ, GT and LT indicators if the top item is zero, or greater then zero, or less than zero, respectively. Do not change the value on top of the stack

COMPARE Compare the top two on the stack. Set the EQ, GT and LT indicators if the top item is equal to, greater then, or less than the second item on the stack, respectively. Remove the two operands from the stack

BEQ address Branch to address if the EQ indicator is ON

BGT address Branch to address if the GT indicator is ON

BLT address Branch to address if the LT indicator is ON

BR address Branch to address

INPUT address Input a single character from the terminal and store it in the indicated memory address

OUTPUT Output the value contained on top of stack in the correct character-oriented format. Then pop the value off the stack

Page 73: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Zero-address format Stack sangat membantu dalam mengevaluasi ekspresi

aritmetik. Meningkatkan kecepatan evaluasi :

infix prefix (Polish) atau postfix (Reverse Polish).

Keuntungan Reverse Polish dibanding Infix: Formula aljabar dapat diekspresikan tanpa kurung. Kemudahan komputasi yang melibatkan stack. tTdak mensyaratkan pengetahuan tentang prioritas

operator (infix : a + b x c a + (b x c)

Page 74: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Konversi notasi : infix - postfix

E. W. Dijkstra. : formula variabel, operator dyadic (+, -, x, /, ‘(’ dan ‘)’), (simbol awal dan akhir formula)

Tanda yang pertama selalu berbelok terlebih dahulu ke Texas.

A x ( B + C )

New York

Texas

California

Page 75: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Konversi notasi : infix - postfix

Tabel keputusan :1. Gerbong di persimpangan belok

ke Texas2. Gerbong di jalur Texas terdekat

dengan persimpangan lanjut ke California

3. Gerbong di persimpangan dan yang berada di jalur Texas terdekat dengan persimpangan dibuang

4. Berhenti. Simbol di California : formula dalam notasi Reverse Polish

5. Berhenti. Terjadi kesalahan pada formula asal (infix).

Gerbong di persimpangan

+ - x / ( )

Gerbong di Jalur Texas

terdekat dg

persimpangan

4 1 1 1 1 1 5

+ 2 2 2 1 1 1 2

- 2 2 2 1 1 1 2

x 2 2 2 2 2 1 2

/ 2 2 2 2 2 1 2

( 5 1 1 1 1 1 3

Page 76: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Konversi notasi : infix - postfix

Jalur Texas ≈ stack pembelokan gerbong ke jalur Texas ≈ PUSH gerbong dari jalur Texas melanjutkan ke California ≈

POP

Page 77: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Konversi notasi : infix - postfix

Algoritma konversi notasi infix reverse polish dengan stack :

Inisialisasi sebuah stack kosong Lakukan operasi-operasi berikut ini hingga akhir ekspresi infix

: Ambil token selanjutnya dari ekspresi infix (konstanta, variabel,

operator, kurung buka atau kurung tutup) Jika token tersebut berupa :

Kurung buka, PUSH kedalam stack Operan, tambahkan ke ekspresi postfix yang sedang dibangun Operator, dengan kondisi :

Stack kosong, maka PUSH token tersebut ke stack Token memiliki prioritas lebih tinggi daripada elemen yang menempati top-of-

stack, maka PUSH token ke stack Selainnya, POP operator dari stack dan tambahkan ke ekspresi postfix yang

sedang dibangun. Ulangi pembandingan token dengan elemen pada top-of-stack. (Sebagai catatan : kurung buka memiliki prioritas terendah dibandingkan operator yang lain)

Kurung tutup, POP elemen stack dan tambahkan ke ekspresi postfix, hingga kurung buka menempati top-of-stack. POP kurung buka tersebut, namun tidak ditambahkan ke ekspresi postfix.

Saat akhir ekspresi infix dicapai, POP seluruh isi stack dan tambahkan ke ekspresi postfix.

Page 78: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Konversi notasi : infix - postfixContoh

Infix Reverse Polish

A + B x C A B C x +A x B + C A B x C +A x B + C x D A B x C D x +( A + B ) / ( C – D ) A B + C D - /A x B / C A B x C /( ( A + B ) x C + D ) / ( E + F +

G )A B + C x D + E F + G

+ /

Page 79: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Evaluasi Notasi Reverse Polish1. Periksa tiap simbol dalam formula Reverse Polish,

dimulai dari simbol paling kiri hingga ditemukan operator.

2. Tuliskan operator tersebut berikut dua operan yang terletak tepat disebelah kiri operator tersebut.

3. Hapus operator dan operan-operan tersebut dari formula Reverse Polish, yang menghasilkan ‘lubang’ pada formula.

4. Eksekusi ekspresi yang telah dituliskan dan tuliskan hasil eksekusi pada ‘lubang’ formula.

5. Jika saat ini formula Reverse Polish hanya terdiri dari satu nilai, maka nilai tersebut melambangkan hasil eksekusi formula secara keseluruhan dan iterasi algoritma selesai; sebaliknya, kembali ke langkah pertama.

Page 80: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Evaluasi Notasi Reverse Polish

Formula Infix : ( 8 + 2 x 5 ) / ( 1 + 3 x 2 – 4 )Formula Reverse Polish : 8 2 5 x + 1 3 2 x + 4 - /

Page 81: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Evaluasi Notasi Reverse Polish

Inisialisasi stack kosong Ulangi langkah-langkah berikut hingga tercapai akhir

ekspresi : Ambil token selanjutnya dari ekspresi postfix Jika token adalah operan, PUSH ke stack Jika token adalah operator : POP dua nilai teratas dari stack (jika ternyata stack tidak

memuat setidaknya dua nilai, maka eksekusi dihentikan karena ekspresi postfix tidak dalam format yang benar)

Eksekusi operator dengan menggunakan kedua operan tersebut

PUSH hasil eksekusi kembali ke stack Saat akhir ekspresi tercapai, hasil evaluasi ekspresi

secara keseluruhan terletak pada top-of-stack

Page 82: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Evaluasi Notasi Reverse Polish

Page 83: TEMA: ARSITEKTUR DAN ORGANISASI KOMPUTER

Evaluasi Notasi Reverse Polish

8 8

2

8

2

5

8

10

18 18

1

18

1

3

18

1

3

2

18

1

6

18 18

7

18 18

7

4

18 18

3

18 186

1 32 4 5 6 7 8 9 10 11 12 13