• Tidak ada hasil yang ditemukan

Set Intruksi & Mode Pengalamatan

N/A
N/A
Protected

Academic year: 2021

Membagikan "Set Intruksi & Mode Pengalamatan"

Copied!
47
0
0

Teks penuh

(1)

Set Intruksi & Mode Pengalamatan

© William Stalling – Computer Organization and Architecture 2010

Team Dosen Prodi S1-Sistem Komputer Universitas Telkom

2017

(2)

Karakteristik Instruksi Mesin

1. Set intruksi adalah kumpulan lengkap dari instruksi yang dapat dieksekusi oleh CPU

2. Set instruksi adalah interface antara perancang komputer dan programmer

(3)

Element dari Instruksi

1. Kode Operasi (Op code)

2. Referensi Operand Sumber 3. Referensi Operand Hasil

4. Referensi Instruksi Selanjutnya

(4)

Operand di simpan di:

1. Memori Utama (atau memori virtual atau cache) 2. Register CPU

3. Divais I/O

(5)

Representasi Instruksi

Dalam bahasa mesin setiap intruksi mempunyai pola kombinasi bit yang unik

Representasi Simbolik digunakan untuk memudahkan

 contoh. ADD, SUB, LOAD

Operand dapat juga direpresentasikan sebagai:

 ADD A,B

(6)

Jenis-jenis Instruksi

1. Pengolahan data

2. Penyimpanan data (memori utama) 3. Perpidahan data (I/O)

4. Control

(7)

Jumlah Alamat (a)

1. 3 alamat

Operand 1, Operand 2, hasil

Tidak umum digunakan

Memerlukan word yang sangat panjang

Contoh : c = a + b

ADD c, a, b (c  a + b)

(8)

Jumlah Alamat (b)

1. 2 alamat

Alamat berfungsi sebagai operand dan hasil

Instuksi lebih pendek

Memerlukan bantuan

Penyimpanan sementara untuk menyimpan hasil

Contoh c = a + b

ADD a, b (a  a + b)

MOV c, a (c  a)

(9)

Jumlah Alamat (c)

1. 1 alamat

Alamat kedua implisit

Biasanya register (accumulator)

Umum untuk mesin-mesin awal

Contoh c = a + b

LOAD a ( AC  a)

ADD b ( AC  AC + b)

STORE c (c  AC)

(10)

Perbandingan Jumlah Operand

KASUS : C = A + B

ADD C,A,B

ADD A,B

MOV C,A

LOAD A

ADD B

STOR C

(11)

Jumlah Alamat (d)

1. 0 (zero) alamat

Semua alamat implisit

Menggunakan stack

contoh c = a + b

push a

push b

add

pop c

(12)

Karaktersitik Alamat

1. Alamat lebih banyak

Instruksi lebih komplek

Lebih banyak register

Operasi antar register lebih cepat

Lebih sedikit instruksi per program

2. Alamat lebih sedikit

Instruksi lebih sederhana

Lebih banyak instruksi per program

Fetch dan eksekusi lebih cepat

(13)

Perancangan Set Instruksi

o Keperluan operasi

o Berapa banyak operasi?

o Operasi apa yang akan disedikan?

o Seberapa komplek?

o Jenis Data

o Format Instruksi

o Panjang dari field op code o Banyaknya alamat

o Register

o Jumlah register CPU yang tersedia

o Operasi apa yang bisa dilakukan di register tertentu ? o Pengalamatan

(14)

Jenis dari Operand

1. Alamat

Dapat dianggap sebagai unsigned integer

2. Angka

Integer/floating point/desimal

3. Karakter

IRA (International Reference Alphabet)

ASCII (American Standard Code for Information Interchange)

4. Data Logik

Bit-oriented

(15)

Jenis Operation

1. Transfer Data 2. Arithmetik 3. Logik

4. Konversi 5. I/O

6. Kendali Sistem

7. Pengalihan Kendali (Transfer of Control)

(16)

Transfer Data

1. Tentukan

Sumber dan tujuan (memory, register, atau stack)

Besarnya data

Mode pengalamatan 2. Kegiatan CPU :

Menghitung address, periksa jika alamat berada di memori virtual

Periksa apakah sudah ada di cache

Memberi perintah ke memori

(17)

Arithmetik

1. Add, Subtract, Multiply, Divide

Untuk signed integer, floating point, packed decimal

2. Instruksi Operand Tunggal:

Increment

Decrement

Negate

Absolute

3. Dapat melibatkan operasi transfer data

(18)

Logical

1. Operasi level bit 2. AND, OR, NOT, XOR 3. Shift dan rotate

4. Dapat melibatkan operasi transfer data

(19)

Konversi

1. Mengubah format data

2. Contoh biner ke desimal atau sebaliknya

(20)

Input/Output

1. Dapat merupakan instruksi khusus 2. Dapat dikerjakan dengan instruksi

pemindah data (memory mapped) 3. Dapat dikerjakan dengan pengendali

khusus (DMA)

(21)

Kendali Sistem

1. Instruksi khusus

2. CPU harus ada pada state tertentu 3. Disediakan untuk sistem operasi

(22)

Pengalihan Kendali

1. Pencabangan (Branch)

Loncat ke intruksi di lokasi lain selain instruksi berikutnya 2. Skip

Skip instruksi selanjutnya 3. Procedure call

Memanggil program lain

(23)

Instruksi Pencabangan (Branch)

(24)

Nested Procedure Calls

(25)

Alamat Kembali dari suatu Procedure Call

1. Register

2. Permulaan dari prosedur yang di panggil (called procedure) 3. Top dari stack

(26)

Mode Pengalamatan

Umumnya terdapat beberapa mode pengalamatan

Setiap mode menggunakan opcode yang berbeda

Field mode di intruksi menunjukkan mode pengalamatan

Teknik pengalamatan umum:

1.Immediate

2.Langsung (Direct)

3.Tak langsung (Indirect) 4.Register

5.Register Indirect

6.Displacement (Indexed) 7.Stack

(27)

Pengalamatan Immediate

1. Operand merupakan bagian dari instruksi, sehingga tidak bisa mengganti operand tanpa mengubah

instruksi

2. Misal ADD 5 (INTEL : ADD AX,5)

Tambahkan 5 ke isi accumulator

5 adalah operand

3. Tidak ada pengambilan data dari memori, 4. Cepat

Operand Opcode

Instruksi

(28)

Diagram Pengalamatan Langsung

Alamat A Opcode

Instruksi

Memori

Operand

CONTOH INTEL : MOV AX,[1234]

(29)

Pengalamatan Langsung

1. Field alamat pada instruksi berisi alamat dari operand 2. Alamat effektif (EA) = field alamat (A)

3. Misal ADD A

Jumlahkan isi memori pada alamat A ke accumulator

4. Referensi memori tunggal untuk mengakses data 5. Tidak perlu ada perhitungan alamat

6. Ruang alamat memori terbatas tidak bisa melebihi field alamat

(30)

Diagram Pengalamatan Tak Langsung

Alamat A Opcode

Instruksi

Memori

Operand Pointer operand

(31)

Pengalamatan Tak Langsung (1)

1. Lokasi memori ditunjukkan oleh field alamat yang mengandung alamat dari operand

2. EA = (A)

Operand terletak di memori dengan alamat yang terletak di A

3. Contoh ADD (A)

Jumlahkan isi memori yang ditunjukkan oleh isi dari alamat A ke accumulator

(32)

Pengalamatan Tak Langsung(2)

1. Ruang alamat besar

2. Minimal 2n * 2m ;dengan n = field alamat di instruksi dan m = lebar memori

3. Bisa nested, multilevel, cascade

contoh EA = (((A)))

4. Pengaksesan memori berkali-kali untuk mendapatkan operand

5. Lebih lambat dari pengalamatan langsung

(33)

Diagram Pengalamatan Register

Register R Opcode

Instruksi

Register

Operand R

MOV AX,BX

(34)

Pengalamatan Register (1)

 Operand ada di register

 EA = R

 Jumlah register terbatas

 Field alamat sangat kecil (jumlah bit pengkodean register lebih sedikit)

 Instruksi lebih ringkas

 Fetch lebih cepat

 Tanpa akses memori

 Eksekusi sangat cepat

 Ruang alamat sangat terbatas

(35)

Diagram Pengalamatan Register Tak Langsung

Register R Opcode

Instruksi

Memori

Operand

Pointer ke Operand (XX)

Register - register

R XX

MOV AX,[BX]

(36)

Pengalamatan Register Tak Langsung

1. EA = (R)

2. Operand di memori yang ditunjukkan oleh isi register R

3. Ruang alamat besar (2n); n = lebar register

4. Lebih sedikit satu referensi memori daripada

pengalamatan tak langsung (baca memori hanya satu kali)

(37)

Diagram Pengalamatan Displacement

Register R Opcode

Instruksi

Memori

Operand

Pointer ke Operand (XX)

Register

Address A

R + XX+ A

MOV AX,[DI + 1234]

(38)

Pengalamatan Displacement

1. Menggabungkan kemampuan pengalamatan

langsung dan pengalamatan register tak langsung 2. EA = A + (R)

3. Field alamat menyimpan 2 nilai

A = nilai dasar

R = register yang menyimpan nilai displacement

atau sebaliknya

(39)

Pengalamatan Relatif

1. Suatu variasi dari pengalamatan displacement 2. R = Program counter, PC

3. EA = A + (PC)

4. Alamat efektif adalah displacement relatif ke alamat dari instruksi

5. Sangat baik untuk pengaksesan memori yang relatif dekat dengan instruksi yang sedang di eksekusi

(40)

Pengalamatan Register-Dasar

1. Field alamat menyimpan displacement

2. Register referensi menyimpan sebuah alamat memori

3. Register referensi bisa eksplisit atau implisit 4. Misal : register segment

5. PA = S + EA

(41)

Pengalamatan ber-Indeks

1. Field alamat mengandung sebuah alamat memori utama

2. Register referensi mengandung displasment positif dari alamat tersebut

3. EA = A + R

4. Baik untuk mengakses array

EA = A + R

R++

(42)

Kombinasi

1. Menggabungkan pengalamatan tak langsung dengan pengalamatan ber-indeks

Post-index

•EA = (A) + (R) Pre-index

•EA = (A+(R))

(43)

Pengalamatan Stack

1. Operand adalah puncak stack 2. misal.

ADD Pop dua isi stack dan jumlahkan

(44)

Dasar Perancangan Set Intruksi

1. Format instruksi 2. Panjang instruksi

(45)

Format Instruksi

1. Layout dari bit-bit sebuah instruksi 2. Termasuk opcode

3. Termasuk (implisit atau eksplisit) operand

4. Terdapat lebih dari satu format intruksi pada set instruksi

(46)

Alokasi dari Bit-bit

Jumlah mode pengalamatan

 Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jumlah operand

 Biasanya 2 operand

 Setiap alamat operand mungkin memerlukan indikator modenya

Register vs memori

 Referensi ke register memerlukan lebih sedikit bit daripada memori

Jumlah dari set register

 Satu set dari register serba guna

 Dua atau lebih set khusus

Jangkauan alamat

 Pengalamatan langsung membatasi ruang alamat

 Pengalamatan displacement memungkinkan ruang alamat lebih besar

(47)

Panjang Instruksi

1. Terpengaruh dan mempengaruhi:

Ukuran Memori

Organisasi Memori

Struktur Bus

Kompleksitas CPU

Kecepatan CPU

2. Trade off antara kemampuan instruksi dan pengiritan pemakaian memori

Gambar

Diagram Pengalamatan Langsung Alamat AOpcodeInstruksi Memori Operand CONTOH INTEL : MOV AX,[1234]
Diagram Pengalamatan Tak Langsung Alamat AOpcodeInstruksi Memori Operand Pointer operand
Diagram Pengalamatan Register Register ROpcode Instruksi Register Operand R MOV AX,BX
Diagram Pengalamatan Register Tak Langsung Register ROpcodeInstruksi Memori OperandPointer ke Operand (XX)Register - registerR XX MOV AX,[BX]
+2

Referensi

Dokumen terkait

Semua divais 8051 mempunyai ruang alamat yang terpisah untuk memori program dan memori data, seperti yang ditunjukkan pada gambar 1.1.. Pemisahan secara logika dari memori program

Untuk mengakses data dalam memori dapat dengan memberikan alamatnya baik dengan pengalamatan langsung maupun tak-langsung (RAM alamat 00H – 7FH), pengalamatan tak- langsung (RAM

• Dengan demikian, referensi-referensi ke lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register tidak langsung.

Berisikan field alamat yang terdapat dalam instruksi mengacu ke memori. 11.1

Untuk dapat mereferensi lokasi alamat dalam jumlah yang banyak dalam memori utama atau memori virtual pada mesin-mesin tertentu diperlukan teknik pengalamatan..

19 Saluran alamat (address bus) diperlukan untuk menentukan suatu lokasi alamat memori maupun lokasi alamat dari perangkat input / output (Input Output Interface) yang

Sedangkan pengalamatan secara tak langsung pada lokasi dari RAM internal ini adalah akses data dari memori ketika alamat memori tersebut tersimpan dalam suatu

Untuk proses pembacaan data pada alamat memori tambahan (eksternal), terdiri dari beberapa bagian penting yaitu: • Dibutuhkan alamat dari lokasi memori yang akan diambil/dibaca.. •