PERTEMUAN KE-10
“SET INTRUKSI”
10.1 Karakteristik dan Fungsi
Set intruksi dalam sudut pandang perancang merupakan suatu mesin yang
memfasilitasi persyaratan fungsi untuk CPU (Central Processing Unit) karna tugas
intruksi mesin sebagian besar adalah mengimplementasikan CPU. Namun dari sisi users
ketika users memilih untuk program dalam bahasa mesin maka users harus mengetahui
register dari struktur memori, jenis data oleh mesin, dan fungsi dari ALU (Arithmetic
Logic Unit). Intruksi memiliki elemen yang mengandung suatu informasi yang CPU
butuhkan untuk dieksekusi. Elemen tersebut meliputi:
1. Operation code
2. Result Operand Reference, dan
3. Reference Next Intruction, for example (Main or Virtual Memori, CPU
Register, dan Input/Output Device)
terdapat diagram siklus intruksi dalam karakteristik mesin intruksi seperti gambar
berikut:
diagram tersebut memiliki beberapa intruksi dimulai dari IAC (Intruction Addres
Calculation) yang menentukan alamat perintah untuk dieksekusi dan diterima oleh IF
(Intruction Fetch) yang bertugas membaca atau menerima perintah dari lokasi memori ke
CPU setelah menerima IOD (Intruction Operating Decoding) menganalisa perintah
untuk menentukan jenis operasi yang akan dibentuk dan digunakan. Lalu IAC
(Intruction Addres Calculation) menentukan kembali alamat operand, ini terjadi jika
Referensi Operand dimemori terlibat, jika sudah ditentukan maka OF (Operand Fetch)
mengambil dari memori atau dari modul I/O untuk dibentuk operasi dalam intruksi oleh
DO (Data Operation) sehingga OS (Operand Store) menyimpan hasil eksekusi ke dalam
memori.
Intruksi biasanya diawali dengan urutan bit dan dibagi menjadi beberapa bidang
sesuai dengan penyusunan intruksi. Selama eksekusi intruksi, intruksi-intruksi dibaca
melalui register intruksi di CPU lalu CPU harus dapat mengekstrak data dari bidang
intruksi. Intruksi mesin biasanya sulit untuk dipahami oleh manusia karna sulit untuk
dipahami maka dibuat representasi berbentuk simbolik intruksi mesin, operation code
memiliki singkatan yang disebut mnemonic yang dituju untuk pengoperasian contohnya:
ADD Add
SUB Subtract
MPY Multiply
DIV Divide
LOAD Load data from memory
STOR Store data to memory
16 bits
Terdapat beberapa jenis intruksi seperti data processing yaitu aritmatik
(add, subtract, dll) dan logic (and, or, not, dll), data storage untuk transfer data, data
movement untuk intruksi input dan output, dan data control untuk tes dan cabang
intruksi.
Intruksi memiliki jumlah alamat maksimum, satu alamat berfungsi ganda sebagai
operan dan hasil
Contoh: a = a + b
namun intruksi aritmatika dan logika paling banyak membutuhkan operand jadi harus
membutuhkan 2 alamat untuk mereferensikan operand, untuk maksimalnya 3 alamat
namun format 3 alamat tidak umum karna membutuhkan intruksi yang panjang untuk
menampung referensi 3 alamat
Move Z, A Z A
Sub Z, B Z Z-B
Move X, D X D
MPY X, E X X*E
ADD X, C X X+C
DIV Z, X Z Z/X
Intruksi multialamat adalah umum untuk mempunyai beberapa register untuk suatu
tujuan, yang bisa disebut multialamat adalah alamat yang lebih dari 1. Jumlah alamat
intruksi tergantung keputusan para desain, jika desain menginginkan sedikit pada alamat
maka per-intruksinya menghasilkan intruksi yang lebih sederhana dan CPU yang
dibutuhkan tidak terlalu rumit sehingga waktu yang dibutuhkan tidak terlalu lama dan
lebih kompleks.
Salah satu aspek paling banyak dianalisis dari intruksi adalah desain dari set
intruksi namun kelemahan desain set intruksi mempengaruhi ruang memori utama oleh
panjang program. Tahapan desain set intruksi ada pada gambar berikut:
1. Address
2. Numbers
3. Characters, dan
4. Logical data
Numbers memiliki 3 jenis data numerik yang umum seperti integer, float, dan decimal.
Characters bentuk data yang umum seperti teks atau lebih dikenal string sementara data
logis adalah setiap kata atau unit yang dapat dialamatkan (byte, setengah kata, dan
seterusnya) diperlakukan sebagai satu unit data dan hanya ada 2 nilai dari array,
boolean, atau binner yang masing-masingnya hanya dapat mengambil nilai true or false.
Jumlah operation code yang berbeda sangat bervariasi dari mesin ke mesin.
Namun, jenis operasi umum yang sama ditemukan di semua mesin, kategorisasinya
adalah sebagai berikut:
1. Data transfer
2. Arithmetic
3. Logical
4. Conversion
5. Input/Output
6. System control
7. Transfer of control
Mode pengalamatan mengacu pada bidang alamat dan format intruksi misalnya
users ingin mereferensikan sejumlah lokasi di memori utama untuk beberapa sistem
maka untuk mencapai tujuannya mode pengalamatan digunakan. Ada beberapa mode
pengalamatan yang paling umum digunakan sebagai berikut:
1. Immediate addressing
2. Direct addressing
3. Indirect addressing
4. Register addressing
5. Register indirect
6. Displacement addressing
1) Immediate Addressing (pengalamatan segera)
Bentuk yang paling sederhana adalah immediate addressing dimana operand ada dalam
intruksi maka operand = address field.
Intruktion
karna tidak ada referensi memori selain pengambilan intruksi yang diperlukan untuk
mendapatkan operand sehingga menghemat chace dalam siklus intruksi sementara
ukuran nomornya terbatas pada field address.
Direct addressing dapat diakses oleh hampir semua register maupun variable, address
field berisi alamat operand seperti Effective address (EA) = address field (A) mode
pengalamatan seperti ini sudak tidak umum karna hanya membutuhkan 1 referensi
memori, tidak ada perhitungan, dan ruang alamat yang terbatas. Contohnya tambahkan A
ke akumulator maka penjabarannya sebagai berikut:
Register addressing sama dengan direct addressing perbedaannya hanya pada bidang
alamat mengacu pada register tidak mengacu ke alamat memori. Contohnya sebagai
berikut: