1.Karakteristik Instruksi Mesin
Pengertian
karakteristik mesin
Karakteristik
instruksi mesin adalah ciri-ciri khusus atau sifat khas yang dimiliki oleh
instruksi-instruksi atau kode operasi dalam pemrograman komputer.Operasi CPU
ditentukan oleh instruksi-instruksi yang dieksekusinya. Instruksi-instruksi ini
dikenal sebagai intruksi mesin atau instruksi computer.
A.
Elemen-elemen Instuksi Mesin
Setiap instruksi harus terdiri dari informasi
yang diperlukan oleh CPU untuk dieksekusi. Gambar langkah-langkah yang terdapat
dalam eksekusi instruksi dan bentuk elemen-elemen instruksi mesin, adalah
sebagai berikut :
Kode
Operasi : menentukan operasi-operasi yang akan dilakukan (misalnya: ADD,I/O).
Operasi itu dispesifilan oleh sebuah kode biner, dikenal sebagai kode operasi.
Acuan
Operand Sumber : Operasi dapat melibatkan satu atau lebih operand sumber,
dengan kata lain, operand adalah input bagi operasi.
Acuan
Operand Hasil: Operasi dapat menghasilkan sebuah hasil.
Acuan
Instruksi Berikutnya: Elemen ini memberitahukan CPU posisi instruksi berikutnya
yang harus diambil setelah menyelesaikan eksekusi suatu instruksi. Instuksi
berikutnya yang akan diambil berada di memori utama atau pada system memori
virtual, akan berada baik di dalam memori utama atau memori sekunder.Operand
sumber dan hasil dapat berada di salah satu dari ketiga daerah berikut ini:
Memori
Utama atau Memori Virtual: Dengan adanya acuan instruksi berikutnya, maka
alamat memori utama atau memori virtual harus diketahui.
Register
CPU: Dengan suatu pengecualian yang jarang terjadi, CPU terdiri dari sebuah
register atau lebih yang dapat diacu oleh instruksi-instruksi mesin. Bila hanya
terdapat sebuah register saja, maka acuan ke instruksi tersebut dapat berbentuk
implicit. Sedangkan jika terdapat lebih dari satu register, maka setiap
register diberi nomor yang unik, dan instruksi harus terdiri dari nomor
register yang dimaksud.
Perangkat
I/O: Instruksi harus menspesifikan modul I/O dan perangkat yang diperlukan oleh
operasi. Jika digunakan I/O memori terpetakan, maka perangkat ini merupakan
memori utama atau memori virtual.
B.
Representasi Instruksi
Di dalam computer, instruksi dipresentasikan
oleh sehimpunan bit. Himpunan bit ini dibagi menjadi beberapa bidang, dengan bidang-bidang
ini berkaitan dengan elemen-elemen yang akan memuat instruksi. Layout instruksi
ini dikenal sebagai bentuk instruksi. contohnya adalah:
-ADD
Add (Menambahkan)
-SUB
Substract (Pengurangan)
-MPY
Multiply (Perkalian)
-DIV
Divide (Pembagian)
-LOAD
Muatkan data data dari memori
-STOR
Simpan data ke memori
Operand-operand
juga direpresentasikan secara simbolik. Misalnya instruksi ADD R,Y Berarti
tambahkan niali yang terdapat pada lokasi Y ke isi register R. Dalam contoh
ini, Y berkaitan dengan alamat lokasi di dalam memori, dan R berkaitan dengan
register tertentu. Perlu dicatat bahwa operasi dilakukan terhadap isi alamat,
bukan terhadap alamatnya.Sehingga adalah mungkin untuk menuliskan program
bahasa mesin dalam bentuk simbolik. Setiap opcode simbolik memiliki
representasi biner yang tetap, dan pemrograman dapat menetapkan masing-masing
operand simbolik. Misalnya, pemrograman dapat memulainya dengan
definisi-definisi:
-X=523
-Y=514
dan
seterusnya. Sebuah program yang sederhana akan menerima input simbol ini,
kemudian mengkonversiakn opcode dan acuan operand menjadi bentuk biner, dan
akhirnya membentuk instruksi mesin biner.
C.
Jenis-Jenis Instruksi
Sebuah instuksi yang dapat diekspresikan dalam
bahasa BASIC atau FORTRAN. X = X+Y Pernyataan ini menginstruksikan komputer
untuk menambahkan nilai yang tersimpan di Y ke nilai yang tersimpan di X dan
menyimpan hasilnya di X. Variabel X dan Y berkorespondensi dengan lokasi 513
dan 514. Jika kita mengasumsikan set instruksi mesin yang sederhana, maka
operasi ini dapat dilakukan dengan tiga buah instruksi:
1.
Muatkan sebuah register dengan isi lokasi memori 513
2.
Tambahkan isi lokasi memori ke register
3.
Simpan isi register di lokasi memori 513
Suatu komputer harus memiliki set instruksi
yang memungkinkan pengguna untuk memformulasikan pengolahan data atau dengan
memperhatikan kemampuan pemrograman bahasa tingkat tinggi. Agar dapat
dieksekusi, setiap program yang ditulis dalam bahasa program tingkat tinggi
harus diterjemahkan ke dalam bahasa mesin. Jadi, set instruksi mesin harus
dapat mengekspresikan setiap instruksi bahas atingkat tinggi.
Adapun
Jenis-jenis instrusi sebagai berikut:
-
Pengolahan Data : Instrusi-instruksi aritmatika dan logika
-
Penyimpanan Data : Instriksi-instruksi memori
-
Perpindahan Data : Instruksi I/O
-
Kontrol : Instruksi pemeriksaan dan percabangan
D.
Jumlah Alamat
Salah satu cara tradisional dalam menjelaskan
arsitektur prosesor adalah dengan memakai jumlah alamat yang terdapat pada
masing-masing instruksi. Instruksi aritmatika dan logika memerlukan operand
yang berjumlah banyak. Secara virtual, seluruh operasi eritmatika dan logika
merupakan uner/unary (satu operand) atau biner (dua operand). Dengan demikian,
memerlukan maksimum dua alamat untuk acuan operand. Hasil sebuah operasi akan
memerlukan alamat ketiga.
Dengan demikian, instruksi perlu memiliki
empat buah acuan alamat: dua buah operand, sebuah hasil operasi, dan sebuah
alamat instruksi berikutnya. Sebagian besar CPU merupakan variasi satu, dua,
atau tiga alamat dengan alamat instruksi berikutnya merupakan implisit
(diperoleh dari pencacah program). Format tiga alamat tidak umum digunakan,
karena instruksi-instruksi tersebut memerlukan bentuk instruksi yang lebih
relatif lebih panjang untuk menampung acuan-acuan tiga alamat. Sedangkan bentuk
dua alamat mengurangi kebuatuahan ruang akan tetapi menimbulkan kesulitan.
Instruksi yang lebih sederhana adalah instruksi satu alamat. Agar alamat ini
dapat berfungsi, alamat perlu diimplisitkan.
E.
Rancangan Set Instruksi
Salah satu hal yang paling menarik tentang
rancangan komputer adalah rancangan set instruksi. Set instruksi merupakan alat
bagi pemrogram untuk mengontrol CPU. Dengan demikian, kebutuhan-kebutuhan
pemrogram harus menjadi bahan pertimbangan dalam merancang set instruksi. Masalah
rancangan fundamental yang paling signifikan meliputi:
Repertasi
Operasi: Berapa banyak dan operasi-operasi apa yang harus disediakan, dan
sekompleks apakah operasi itu seharusnya.
Jenis
data : berbagai jenis data pada saat operasi dijalankan
Bentuk
instruksi : Panjang instruksi (dalam bit), jumlah alamat, ukuran bidang, dan
sebagainya.
Register
: Jumlah register CPU yang dapat diacu oleh instruksi, dan fungsinya.
Pengalamatan:
Mode untuk menspesifikasikan alamat suatu operand.
Masalah-masalah
ini saling berkaitan dan harus diperhatikan dalam merancang set instruksi.
Kesimpulan
Instruksi
mesin (machine intruction) yang dieksekusi membentuk suatu operasi dan berbagai
macam fungsi CPU.
Kumpulan
fungsi yang dapat dieksekusi CPU disebut set instruksi (istruction set) CPU.
Karakteristik
instruksi mesin, meliputi:
Elemen-elemen
instruksi
Representasi
instruksi
Jenis-jenis
instruksi
Penggunaan
alamat
Rancangan
set instruksi
1.ELEMEN-ELEMEN DARI INSTRUKSI MESIN
(SET INSTRUKSI)
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.
Source
dan result operands dapat berupa salah Satu diantara tiga jenis berikut ini:
Main
or Virtual Memory
CPU
Register
I/O
Device
2. DESAIN SET INSTRUKSI
Desain
set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak
aspek, diantaranya adalah:
1.
Kelengkapan set instruksi
2.
Ortogonalitas (sifat independensi instruksi)
3.
Kompatibilitas :
Source
code compatibility
Object
code Compatibility
Selain
ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:
-
Operation Repertoire: Berapa banyak dan operasi apa saja yang disediakan, dan
berapa sulit operasinya
-
Data Types: tipe/jenis data yang dapat olah Instruction Format:
panjangnya, banyaknya alamat, dsb.
-
Register: Banyaknya register yang dapat digunakan.
-
Addressing: Mode pengalamatan untuk operand.
3. TRANSFER DATA
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 :
Memindahkan
data dari satu lokasi ke lokasi lain.
Apabila
memori dilibatkan :
Menetapkan
alamat memori.
Menjalankan
transformasi alamat memori virtual ke alamat memori aktual.
Mengawali
pembacaan / penulisan memori
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
4.ARITHMETIC
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.
MULTsIPLY :
perkalian
7. DECREMENT
4.
DIVIDE : pembagian
8. INCREMENT
Nomor
5 sampai 8 merupakan instruksi operand tunggal.
5.LOGICAL
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.
6.CONVERSI
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 berdasrkan
tabel korespodensi.
2.
CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
7.INPUT/OUPUT
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 pernagkat 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
8.TRANSFERCONTROL
Tindakan CPU untuk transfer control :
Mengupdate
program counter untuk subrutin , call / return.
Operasi
set instruksi untuk transfer control :
JUMP
(cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat tertentu.
JUMP
BERSYARAT : menguji persyaratan tertentu danmemuat PC dengan alamat tertentu
atau tidak melakukan apa tergantung dari persyaratan.
JUMP
SUBRUTIN : melompat ke alamat tertentu.
RETURN
: mengganti isi PC dan register lainnya yang berasal dari lokasi tertentu.
EXECUTE
: mengambil operand dari lokasi tertentu dan mengeksekusi sebagai instruksi
SKIP
: menambah PC sehingga melompati instruksi berikutnya.
SKIP
BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada persyaratan
HALT
: menghentikan eksekusi program.
WAIT
(HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
NO
OPERATION : tidak ada operasi yang dilakukan.
9. CONTROL SYSTEM
Hanya
dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau
sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya
digunakan dalam sistem operasi.
Contoh : membaca atau mengubah
register kontrol.
10. 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 menyimpancoperand dan hasilnya)
11. Macam-macam instruksi menurut
jumlah operasi yang dispesifikasikan
1. Memori To Register Instruction
2.
Memori To Memori Instruction
3.
Register To Register Instruction
2.TIPE TIPE OPERAND
TIPE
TIPE OPERAND
Operation
Code / Kode Operasi : Menspesifikasikan operasi yang akan dilakukan (misalnya,
ADD). Operasi dispesifikasikan oleh kode biner, yang dikenal sebagai kode
operasi, atau opcode.
Operand
: Adalah bagian daripada instruksi komputer yang menspesifikasikan data apa
yang hendak dimanipulasi atau dilakukan operasi terhadapnya, dan pada waktu
yang bersamaan merepresentasikan sebagai data itu sendiri. Jenis operand secara
khusus yang digunakan sebagai elemen dari instruksi mesin adalah :
-
Source Operand Reference / Referensi Operand Sumber : Operasi dapat mencakup
satu atau lebih sumber, operand merupakan input bagi operasi.
-
Result Operand Reference / Referensi Operand Hasil : Adalah operand yang dapat
membuat hasil dari operasi.
Sumber
dan hasil operand dapat berada di salah satu dari ketiga daerah ini :
a.
Memori utama atau memori virtual: dengan referensi alamat berikutnya, maka
alamat memori utama atau virtual harus diketahui.
b.
Register CPU : instruksi harus diberi nomor register yang dimaksud.
c.
Perangkat I/O : instruksi harus menspesifikasikan modul I/O yang diperlukan
oleh operasi.
-
Next Instruction Reference / Referensi Operand Selanjutnya : Berfungsi untuk
memberitahu CPU posisi instruksi yang berikutnya yang harus diambil setelah
menyelesaikan eksekusi atau instruksi.
TIPE-TIPE OPERAND
1.
Address
2.
Numbers :
-
Integer atau fixed point
-
Floating point
-
Decimal (BCD)
3.
Characters :
-
ASCII (American Standard Code for Information Interchange)
-
EBCDIC (Extended Binary Coded Decimal Interchange Code)
4.
Logical Data :
-
Bits
-
Flag
3.TIPE TIPE OPERASI
TIPE-TIPE
OPERASI
a. 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 bgian paling atas sumber
b. Operasi set instruksi untuk
arithmetic :
•
ADD : penjumlahan
•
SUBTRACT : pengurangan
•
MULTIPLY : perkalian
•
DIVIDE : pembagian
•
ABSOLUTE
•
NEGATIVE
•
DECREMENT
•INCREMENT
Urutan 5 sampai 8 merupakan instruksi operand tunggal.
c. Operasi set instruksi
untuk operasi logical :
• AND, OR, NOT, EXOR
• COMPARE : melakukan perbandingan logika.
• 3TEST : menguji kondisi tertentu.
• SHIFT : operand menggeser ke kiri atau kanan menyebabkan konstanta pada ujung
bit.
• ROTATE : operand menggeser ke kiri atau ke kanan dengan ujung yang terjalin.
d. Operasi set
instruksi untuk conversi :
•
TRANSLATE : menterjemahkan nilai-nilai dalam suatu bagian memori berdasrkan
tabel korespodensi.
•
CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
e. Operasi set
instruksi Input / Ouput :
•
INPUT : memindahkan data dari pernagkat I/O tertentu ke tujuan
•
OUTPUT : memindahkan data dari sumber tertentu ke perangkat I/O
•
START I/O : memindahkan instruksi ke prosesor I/O untuk mengawali operasi I/O
•
TEST I/O : memindahkan informasi dari sistem I/O ke tujuan
f. Operasi set
instruksi untuk transfer control :
•
JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat
tertentu.
•
JUMP BERSYARAT : menguji persyaratan tertentu dan memuat PC dengan alamat
tertentu atau tidak melakukan apa tergantung dari persyaratan.
•
JUMP SUBRUTIN : melompat ke alamat tertentu.
•
RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi
tertentu.
•
EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai
instruksi.
•
SKIP : menambah PC sehingga melompati instruksi berikutnya.
•
SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada
persyaratan.
•
HALT : menghentikan eksekusi program.
•
WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
•
NO OPERATION : tidak ada operasi yang dilakukan.
4.PENGALAMATAN
A. Metode
pengalamatan
Metode
pengalamatan adalah bagaimana cara menunjuk dan mengalamati suatu lokasi
memori pada sebuah alamat di mana operand akan diambil. Mode pengalamatan
diterapkan pada set instruksi, pengalamatan memberikan fleksibilitas khusus
yang sangat penting. Mode pengalamatan ini meliputi direct addressing, indirect
addressing, dan immediate addressing.
1.
Direct Addresing
Dalam
mode pengalamatan direct addressing, harga yang akan dipakai diambil langsung
dalam alamat memori lain. Contohnya: MOV A,30h. Dalam instruksi ini akan dibaca
data dari RAM internal dengan alamat 30h dan kemudian disimpan dalam
akumulator.
Mode
pengalamatan ini cukup cepat, meskipun harga yang didapat tidak langsung
seperti immediate, namun cukup cepat karena disimpan dalam RAM internal.
Demikian pula akan lebih mudah menggunakan mode ini daripada mode immediate
karena harga yang didapat bisa dari lokasi memori yang mungkin variabel.
Kelebihan
dan kekurangan dari Direct Addresing antara lain :
Kelebihan
Field
alamat berisi efektif address sebuah operand
Kelemahan
Keterbatasan
field alamat karena panjang field alamat biasanya lebih kecil dibandingkan
panjang word
2.
Indirect Addresing
Mode
pengalamatan indirect addressing sangat berguna karena dapat memberikan
fleksibilitas tinggi dalam mengalamati suatu harga. Mode ini pula satu-satunya
cara untuk mengakses 128 byte lebih dari RAM internal pada keluarga 8052.
Contoh: MOV A,@R0. Dalam instruksi tersebut, 89C51 akan mengambil harga yang
berada pada alamat memori yang ditunjukkan oleh isi dari R0 dan kemudian
mengisikannya ke akumulator. Mode pengalamatan indirect addressing selalu
merujuk pada RAM internal dan tidak pernah merujuk pada SFR. Karena itu,
menggunakan mode ini untuk mengalamati alamat lebih dari 7Fh hanya digunakan
untuk keluarga 8052 yang memiliki 256 byte spasi RAM internal.
Kelebihan
dan kekurangan dari Indirect Addresing antara lain :
Kelebihan
Ruang
bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi
Kekurangan
Diperlukan
referensi memori ganda dalam satu fetch sehingga memperlambat preoses operasi
3.
Immediate Addresing
Mode
pengalamatan immediate addressing sangat umum dipakai karena harga yang akan
disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata
lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan.
Contohnya: MOV A,#20h. Dalam instruksi tersebut, akumulator akan diisi dengan
harga yang langsung mengikutinya, dalam hal ini 20h. Mode ini sangatlah cepat
karena harga yang dipakai langsung tersedia.
Kelebihan
dan kekurangan dari Immedieate Addresing antara lain :
Keuntungan
Tidak
adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh
operand
Menghemat
siklus instruksi sehingga proses keseluruhan akan cepat
Kekurangan
Ukuran
bilangan dibatasi oleh ukuran field alamat
B.
Pengenalan pada Register Addressing
Register
adalah merupakan sebagian memori dari mikro prosessor yang dapat diakses dengan
kecepatan tinggi. Metode pengalamatan register ini mirip dengan mode
pengalamatan langsung. Perbedaannya terletak pada field alamat yang mengacu
pada register, bukan pada memori utama. Field yang mereferensi register
memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register
general purpose.
Kelebihan
dan kekurangan Register Addressing :
Keuntungan
pengalamatan register
Diperlukan
field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi
memori
Akses
ke regster lebih cepat daripada akses ke memori, sehingga proses eksekusi akan
lebih cepat
Kerugian
Ruang
alamat menjadi terbatas
Register
Indirect Addressing
Metode
pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak
langsung Perbedaannya adalah field alamat mengacu pada alamat register.
Letak operand berada pada memori yang dituju oleh isi register.
Kelebihanan
dan kekurangan pengalamatan register tidak langsung adalah sama dengan
pengalamatan tidak langsung
Keterbatasan
field alamat diatasi dengan pengaksesan memori yang tidak langsung
sehingga alamat yang dapat direferensi makin banyak
Dalam
satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak
langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat
daripada mode pengalamatan tidak langsung
C.
Pengenalan Displacement Addressing dan Stack Addresing
Displacement
Addressing adalah menggabungkan kemampuan pengalamatan langsung dan
pengalamatan register tidak langsung. Mode ini mensyaratkan instruksi memiliki
dua buah field alamat, sedikitnya sebuah field yang eksplisit.
Field
eksplisit bernilai A dan field implisit mengarah pada register.
Ada
tiga model displacement : Relative addressing, Base register addressing,
Indexing
Relative
addressing
Register
yang direferensi secara implisit adalah progra counter (PC)
Alamat
efektif relative addresing didapatkan dari alamat instruksi saat itu
ditambahkan ke field alamat
Relativ
addressing memanfaatkan konsep lokalitas memori untuk menyediakan
operand-operand berikutnya
Base
register addresing, register yang direferensi berisi sebuah alamat memori, dan
field alamat berisi perpindahan dari alamat itu
Referensi
register dapat eksplisit maupun implisit
Memanfaatkan
konsep lokalitas memori
Indexing
adalah field alamat mereferensi alamat memori utama, dan register yang
direferensikan berisi pemindahan positif dari alamat tersebut
Merupakan
kebalikan dari mode base register
Field
alamat dianggap sebagai alamat memori dalam indexing
Manfaat
penting dari indexing adalah untuk eksekusi program-program iterative
Stack
adalah array lokasi yang linier = pushdown list = last-in-first-out. Stack
merupakan blok lokasi yang terbalik. Butir ditambakan ke puncak stack sehingga
setiap saat blok akan terisi secara parsial. Yang berkaitan dengan stack adalah
pointer yang nilainya merupakan alamat bagian paling atas stack. Dua elemen
teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack
pointer mereferensi ke elemen ketiga stack. Stack pointer tetap berada dalam
register
Dengan
demikian, referensi-referensi ke lokasi stack di dalam memori pada
dasarnya merupakan pengalamatan register tidak langsung.
5.FORMAT INSTRUKSI
Suatu
instruksi terdiri dari beberapa field yang sesuai dengan elemen dalam
instruksi tersebut. Layout dari suatu instruksi sering disebut sebagai Format
Instruksi (Instruction Format).
JENIS-JENIS
OPERAND
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 dan 1
JENIS
INSTRUKSI
1. Data
processing: Arithmetic dan Logic Instructions
2. Data
storage: Memory instructions
3. Data
Movement: I/O instructions
4. Control: Test
and branch instructions
TRANSFER
DATA
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
ARITHMETIC
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.
LOGICAL
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.
CONVERSI
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
berdasrkan tabel korespodensi.
2.
CONVERT : mengkonversi isi suatu word dari suatu bentuk ke bentuk lainnya.
INPUT
/ OUPUT
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 pernagkat 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
TRANSFER
CONTROL
Tindakan
CPU untuk transfer control :
Mengupdate
program counter untuk subrutin , call / return.
Operasi
set instruksi untuk transfer control :
1.
JUMP (cabang) : pemindahan tidak bersyarat dan memuat PC dengan alamat
tertentu.
2.
JUMP BERSYARAT : menguji persyaratan tertentu danmemuat PC dengan alamat
tertentu atau tidak melakukan apa tergantung dari persyaratan.
3.
JUMP SUBRUTIN : melompat ke alamat tertentu.
4.
RETURN : mengganti isi PC dan register lainnya yang berasal dari lokasi
tertentu.
5.
EXECUTE : mengambil operand dari lokasi tertentu dan mengeksekusi sebagai
instruksi
6.
SKIP : menambah PC sehingga melompati instruksi berikutnya.
7.
SKIP BERSYARAT : melompat atau tidak melakukan apa-apa berdasarkan pada
persyaratan
8.
HALT : menghentikan eksekusi program.
9.
WAIT (HOLD) : melanjutkan eksekusi pada saat persyaratan dipenuhi.
10.
NO OPERATION : tidak ada operasi yang dilakukan.
CONTROL
SYSTEM
Hanya
dapat dieksekusi ketika prosesor berada dalam keadaan khusus tertentu atau
sedang mengeksekusi suatu program yang berada dalam area khusus, biasanya
digunakan dalam sistem operasi.
Contoh
: membaca atau mengubah register kontrol.
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 menyimpancoperand dan hasilnya)
Referensi
http://hendrasetiawan24.wordpress.com/2013/10/30/format-instruksi-dan-pengalamatan/
Kesimpulan
Karakteristik instruksi mesin adalah sifat
khas/unik yang dimiliki oleh instruksi-instruksi atau kode operasi dalam
pemrograman komputer.Elemen mesin,setiap informasi yang di sediakan dalam cpu
akan di eksekusi.Representasi instruksi,di dalam komputer terdiri dari kumpulan
bit.Nah di dalam bit ini terdiri dari beberapa elemen lagi yang terdiri dari
beberapa buah bidang dan bidang ini berhubungan dengan elemn-elemen instruksi.Suatu
komputer harus memperhatikan set pengolahan data yang digunakan oleh pengguna
dengan menggunakan bahasa tingkat tinggi.Kemudian bahasa tingkat tinggi ini
harus di terjemahkan ke dalam bahasa mesin.Jadi intinya setiap set instruksi
harus dapat menjelaskan /menggambarkan ke dalam bahasa tingkat tinggi.Cara
yang paling efektif menjelaskan
arsitektur procesor adalah dengan mengetahui jumlah dari alamat alamat intruksi.Dalam
set intruksi tersebut membutuhkan banyak sekali operand.
Operand Adalah bagian instruksi komputer yang
mengkhususkan data apa yang akan dimanipulasi atau dilakukan operasinya,dan pada
waktu yang bersamaan menampilkan sebagai data itu sendiri. Sumber dan hasil
operand berada di salah satu operand berikut:Memori utama atau memori virtual,Register
CPU,Perangkat I/O. Tipe-tipe operand Address,numbers, Characters dan Logical
Data.
Tipe-tipe operasi untuk transfer data
adalah Move,Store ,Load, Exchange, Clear / Reset Set, Push, Pop. Operasi set instruksi untuk arithmetic
adalah Add,Subtract,Multiply, Divide,Absolute,Negative,Decrement,Increment.Operasi set instruksi untuk operasi logical
adalah And, Or, Not, Exor,Compare, 3test
,Shift, Rotate. Operasi set instruksi untuk conversi adalah Translate , Convert.Operasi
set instruksi Input / Ouput adalah Input, Output,Start I/O ,Test I/O.Operasi
set instruksi untuk transfer control adalah Jump (Cabang), Jump Bersyarat ,Jump
Subrutin,Return , Execute, Skip,Skip Bersyarat,Halt,Wait (Hold), No Operation .
Metode pengalamatan adalah
bagaimana cara utuk menunjukkan
dan mengalamati suatu tempat memori pada sebuah alamat di
mana operand akan diambil. Mode pengalamatan terbagi atas direct addressing,
indirect addressing, dan immediate addressing.Pada direct addressing harganya
diambil langsung dalam alamat memori lain. Contohnya: MOV A,30h.Indirect
addressing sangat berguna karena mampu memberikan fleksibilitas tinggi dalam
mengalamati suatu harga. Mode ini pula satu-satunya cara untuk mengakses 128
byte lebih dari RAM internal pada keluarga 8052. Contoh: MOV A,@R0. Displacement
Addressing adalah menggabungkan kemampuan pengalamatan langsung dan
pengalamatan register tidak langsung. Mode ini syaratnya instruksi mempunyai dua
buah field alamat, minimal sebuah field yang eksplisit.
Didalam suatu instruksi memiliki field dari
set instruksi tersebut.Layout dari suatu instruksi tersebut sering disebut sebagai Format Instruksi .Format
instruksi nya adalah oponade,operand dan operand.