Top Banner
Set Instruksi & Mode Pengalamatan Team Dosen Telkom University 2016
49

Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Mar 07, 2019

Download

Documents

NguyễnHạnh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Set Instruksi & Mode Pengalamatan

Team Dosen

Telkom University

2016

Page 2: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Karakteristik Instruksi Mesin

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

• Set instruksi adalah interface antara perancang komputer dan programmer

Page 3: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Element dari Instruksi

• Kode Operasi (Op code)

• Referensi Operand Sumber

• Referensi Operand Hasil

• Referensi Instruksi Selanjutnya

Page 4: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Elemen Instruksi (Siklus)

Page 5: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Operand di simpan di:

• Memori Utama (atau memori virtual atau cache)

• Register CPU

• Immediate• Operand berada pada instruksi yang sedang di eksekusi

• Divais I/O

Page 6: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

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

Page 7: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jenis-jenis Instruksi

• Pengolahan data

• Penyimpanan data (memori utama)

• Perpidahan data (I/O)

• Control

Page 8: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jumlah Alamat (a)

• 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)

Page 9: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jumlah Alamat (b)

• 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)

Page 10: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jumlah Alamat (c)

• 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)

Page 11: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Perbandingan Jumlah Operand

KASUS : C = A + B

ADD C,A,B

ADD A,BMOV C,A

LOAD AADD B STOR C

Page 12: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Contoh Persamaan

SK-37-04

Page 13: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jumlah Alamat (d)

• 0 (zero) alamat

• Semua alamat implisit

• Menggunakan stack

• contoh c = a + b• push a

• push b

• add

• pop c

Page 14: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Karaktersitik Alamat

• Alamat lebih banyak• Instruksi lebih komplek

• Lebih banyak register

• Operasi antar register lebih cepat

• Lebih sedikit instruksi per program

• Alamat lebih sedikit• Instruksi lebih sederhana

• Lebih banyak instruksi per program

• Fetch dan eksekusi lebih cepat

Page 15: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Perancangan Set Instruksi

Keperluan operasi Berapa banyak operasi? Operasi apa yang akan disedikan? Seberapa komplek?

Jenis Data

Format Instruksi Panjang dari field op code Banyaknya alamat

Register Jumlah register CPU yang tersedia Operasi apa yang bisa dilakukan di register tertentu ?

Pengalamatan

Page 16: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jenis dari Operand

• Alamat• Dapat dianggap sebagai unsigned integer

• Angka• Integer/floating point/desimal

• Karakter• IRA (International Reference Alphabet)

• ASCII (American Standard Code for Information Interchange)

• Data Logik• Bit-oriented

Page 17: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Jenis Operation

• Transfer Data

• Arithmetik

• Logik

• Konversi

• I/O

• Kendali Sistem

• Pengalihan Kendali (Transfer of Control)

Page 18: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Transfer Data

• Tentukan

• Sumber dan tujuan (memory, register, atau stack)

• Besarnya data

• Mode pengalamatan

• Kegiatan CPU :

• Menghitung address, periksa jika alamat berada di memori virtual

• Periksa apakah sudah ada di cache

• Memberi perintah ke memori

Page 19: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Arithmetik

• Add, Subtract, Multiply, Divide• Untuk signed integer, floating point, packed decimal

• Instruksi Operand Tunggal:• Increment

• Decrement

• Negate

• Absolute

• Dapat melibatkan operasi transfer data

Page 20: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Logical

• Operasi level bit

• AND, OR, NOT, XOR

• Shift dan rotate

• Dapat melibatkan operasi transfer data

Page 21: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Konversi

• Mengubah format data

• Contoh biner ke desimal atau sebaliknya

Page 22: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Input/Output

• Dapat merupakan instruksi khusus

• Dapat dikerjakan dengan instruksi pemindah data (memory mapped)

• Dapat dikerjakan dengan pengendali khusus (DMA)

Page 23: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Kendali Sistem

• Instruksi khusus

• CPU harus ada pada state tertentu

• Disediakan untuk sistem operasi

Page 24: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalihan Kendali

• Pencabangan (Branch)

• Loncat ke intruksi di lokasi lain selain instruksi berikutnya

• Skip

• Skip instruksi selanjutnya

• Procedure call

• Memanggil program lain

Page 25: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Instruksi Pencabangan (Branch)

Page 26: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Nested Procedure Calls

Page 27: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Alamat Kembali dari suatu Procedure Call

• Register

• Permulaan dari prosedur yang di panggil (called procedure)

• Top dari stack

Page 28: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Mode Pengalamatan

• Umumnya terdapat beberapa mode pengalamatan• Setiap mode menggunakan opcode yang berbeda• Field mode di intruksi menunjukkan mode pengalamatan

Teknik pengalamatan umum:• Immediate• Langsung (Direct)• Tak langsung (Indirect)• Register• Register Indirect• Displacement (Indexed) • Stack

Page 29: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Immediate

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

• Misal ADD 5 (INTEL : ADD AX,5)• Tambahkan 5 ke isi accumulator

• 5 adalah operand

• Tidak ada pengambilan data dari memori,

• Cepat

OperandOpcode

Instruksi

Page 30: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Diagram Pengalamatan Langsung

Alamat AOpcode

Instruksi

Memori

Operand

CONTOH INTEL :MOV AX,[1234]

Page 31: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Langsung

• Field alamat pada instruksi berisi alamat dari operand

• Alamat effektif (EA) = field alamat (A)

• Misal ADD A• Jumlahkan isi memori pada alamat A ke accumulator

• Referensi memori tunggal untuk mengakses data

• Tidak perlu ada perhitungan alamat

• Ruang alamat memori terbatas tidak bisa melebihi field alamat

Page 32: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Diagram Pengalamatan Tak Langsung

Alamat AOpcode

Instruksi

Memori

Operand

Pointer operand

Page 33: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Tak Langsung (1)

• Lokasi memori ditunjukkan oleh field alamat yang mengandung alamat dari operand

• EA = (A)• Operand terletak di memori dengan alamat yang terletak di A

• Contoh ADD (A)• Jumlahkan isi memori yang ditunjukkan oleh isi dari alamat A ke accumulator

Page 34: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Tak Langsung(2)

• Ruang alamat besar

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

• Bisa nested, multilevel, cascade• contoh EA = (((A)))

• Pengaksesan memori berkali-kali untuk mendapatkan operand

• Lebih lambat dari pengalamatan langsung

Page 35: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Diagram Pengalamatan Register

Register ROpcode

Instruksi

Register

Operand R

MOV AX,BX

Page 36: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

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

Page 37: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Diagram Pengalamatan Register Tak Langsung

Register ROpcode

Instruksi

Memori

OperandPointer ke Operand (XX)

Register - register

R XX

MOV AX,[BX]

Page 38: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Register Tak Langsung

• EA = (R)

• Operand di memori yang ditunjukkan oleh isi register R

• Ruang alamat besar (2n); n = lebar register

• Lebih sedikit satu referensi memori daripada pengalamatan tak langsung (baca memori hanya satu kali)

Page 39: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Diagram Pengalamatan Displacement

Register ROpcode

Instruksi

Memori

OperandPointer ke Operand (XX)

Register

Address A

+R XX+ A

MOV AX,[DI + 1234]

Page 40: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Displacement

• Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tak langsung

• EA = A + (R)

• Field alamat menyimpan 2 nilai• A = nilai dasar

• R = register yang menyimpan nilai displacement

• atau sebaliknya

Page 41: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Relatif

• Suatu variasi dari pengalamatan displacement

• R = Program counter, PC

• EA = A + (PC)

• Alamat efektif adalah displacement relatif ke alamat dari instruksi

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

Page 42: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Register-Dasar

• Field alamat menyimpan displacement

• Register referensi menyimpan sebuah alamat memori

• Register referensi bisa eksplisit atau implisit

• Misal : register segment

• PA = S + EA

Page 43: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan ber-Indeks

• Field alamat mengandung sebuah alamat memori utama

• Register referensi mengandung displasment positif dari alamat tersebut

• EA = A + R

• Baik untuk mengakses array• EA = A + R

• R++

Page 44: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Kombinasi

• Menggabungkan pengalamatan tak langsung dengan pengalamatan ber-indeks

• Post-index

• EA = (A) + (R)

• Pre-index

• EA = (A+(R))

Page 45: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Pengalamatan Stack

• Operand adalah puncak stack

• misal. • ADD Pop dua isi stack dan jumlahkan

Page 46: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Dasar Perancangan Set Intruksi

• Format instruksi

• Panjang instruksi

Page 47: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Format Instruksi

• Layout dari bit-bit sebuah instruksi

• Termasuk opcode

• Termasuk (implisit atau eksplisit) operand

• Terdapat lebih dari satu format intruksi pada set instruksi

Page 48: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

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

Page 49: Set Instruksi & Mode Pengalamatan · Format Instruksi Panjangdarifield op code Banyaknyaalamat Register ... Satu atau dua bit tambahan mungkin diperlukan untuk menyatakan mode pengalamatan

Panjang Instruksi

• Terpengaruh dan mempengaruhi:• Ukuran Memori

• Organisasi Memori

• Struktur Bus

• Kompleksitas CPU

• Kecepatan CPU

• Trade off antara kemampuan instruksi dan pengiritan pemakaian memori