FA K U LTA S TEK N IK
U N IV ER SITA S K R ISN A D W IP A Y A N A
1 K A TA P EN G A N TA R
Puji syukur kita panjatkan kehadirat Tuhan Yang Maha Esa karena dengan
rahmat dan hidayah-Nya lah kami dapat menyelesaikan makalah “Unit
Pemrosesan Pusat” ini tepat pada waktunya.
Makalah ini disusun dalam rangka memenuhi tugas mata kuliah Sistem Operasi.
Sehubungan dengan tersusunnya makalah ini kami menyampaikan terima kasih
kepada Ibu Nur Hikmah selaku dosen pengampu mata kuliah Sistem Operasi.
Semoga makalah ini bermanfaat bagi kami dan pembaca. Kami menyadari
bahwa makalah ini masih terdapat kekurangan dan kelemahan. Namun
penyusun tetap mengharapkan kritik dan saran yang bersifat konstruktif
sehingga bisa menjadi acuan dalam penyusunan makalah selanjutnya.
Penyusun
Kelompok 4
i
2 D A FTA R ISI
3 Pendahuluan ............................................................................................. 4
4 Pembahasan.............................................................................................. 5
ii
4.4.5 Instruksi RISC ............................................................................21
5 Penutup ...................................................................................................55
iii
3 P EN D A H U LU A N
3.1 L A TA R B ELA K A N G
Makalah ini dibuat untuk memenuhi tugas mata kuliah Sistem Operasi.
3.2 T U JU A N
Makalah ini bertujuan untuk membahas tentang unit pemrosesan pusat atau
central processing unit (CPU). Unit eksekusi dengan bus umum dan unit logika
aritmatika dikembangkan untuk menunjukkan organisasi register umum dari
CPU tipikal. Pengoperasian stack memori dijelaskan dan beberapa aplikasi
ditunjukkan. Berbagai format instruksi diilustrasikan bersama dengan berbagai
mode pengalamatan. Instruksi paling umum yang ditemukan di komputer
disebutkan dengan penjelasan tentang fungsinya. Bagian terakhir
memperkenalkan konsep RISC (mengurangi set instruksi) dan membahas
karakteristik dan keunggulannya.
4
4 P EM B A H A SA N
4.1 P EN G A N TA R
Bagian dari komputer yang melakukan sebagian besar operasi pemrosesan data
disebut unit pemrosesan pusat dan disebut sebagai CPU. CPU terdiri dari tiga
bagian utama, terlihat pada Gambar 4.1.1. Set register menyimpan data
perantara yang digunakan selama pelaksanaan instruksi. Unit logika aritmatika
(ALU) melakukan operasi mikro yang diperlukan untuk menjalankan instruksi.
Unit kontrol mengawasi transfer informasi di antara register dan
menginstruksikan ALU mengenai operasi yang harus dilakukan.
Set register
Kontrol
Unit logika
aritmatika
(ALU)
5
sama lain tidak hanya untuk transfer data langsung, tetapi juga saat melakukan
berbagai operasi mikro. Oleh karena itu perlu untuk menyediakan unit umum
yang dapat melakukan semua operasi mikro aritmatika, logika, dan pergeseran
dalam prosesor.
Organisasi bus untuk tujuh register CPU ditunjukkan pada Gambar 4.2.1.
Output dari masing-masing register terhubung ke dua multiplexer (MUX)
untuk membentuk dua bus A dan B. Jalur seleksi di setiap multiplexer memilih
satu register atau input data untuk bus tertentu. Bus A dan B membentuk
input ke unit aritmatika logika (ALU) umum. Operasi yang dipilih dalam ALU
menentukan operasi mikro aritmatika atau logika yang akan dilakukan. Hasil
dari operasi mikro tersedia untuk data output dan juga masuk ke input dari
semua register. Register yang menerima informasi dari bus output dipilih oleh
dekoder. Dekoder mengaktifkan salah satu input muatan register, sehingga
menyediakan jalur transfer antara data dalam bus output dan input dari
register tujuan yang dipilih.
6
Unit kontrol yang mengoperasikan sistem bus CPU mengarahkan aliran
informasi melalui register dan ALU dengan memilih berbagai komponen dalam
sistem. Misalnya, untuk melakukan operasi
R1 ← R2 + R3
Ada 14 input pemilihan biner dalam unit tersebut, dan nilai gabungannya
menentukan sebuah word kontrol. Word kontrol 14-bit didefinisikan pada Tabel
4.2.1. Ini terdiri dari empat field. Tiga field masing-masing berisi tiga bit, dan
satu field memiliki lima bit. Tiga bit SELA memilih register sumber untuk input
A dari ALU. Tiga bit SELB memilih register untuk input B dari ALU. Tiga bit
SELD memilih register tujuan menggunakan dekoder dan tujuh muatan
outputnya. Lima bit OPR memilih salah satu operasi di ALU. Word kontrol
14-bit tersebut menentukan operasi mikro tertentu ketika diterapkan pada
input pemilihan.
7
111 R7 R7 R7
Tabel 4.2.2 Pengkodean Field Pemilihan Register
Pengkodean dari pemilihan register ditentukan pada Tabel 4.2.2. Kode biner 3-
bit yang tercantum dalam kolom pertama dari tabel menentukan kode biner
untuk masing-masing field. Register yang dipilih oleh SELA, SELB, dan SELD
adalah yang angka desimalnya setara dengan angka biner dalam kode. Ketika
SELA atau SELB adalah 000, multiplexer yang sesuai memilih data input
eksternal. Ketika SELD = 000, tidak ada register tujuan yang dipilih, tetapi isi
bus output tersedia di output eksternal.
ALU menyediakan operasi aritmatika dan logika. Selain itu, CPU harus
menyediakan operasi pergeseran. Penggeser dapat ditempatkan di input ALU
untuk memberikan kapabilitas pra-pergeseran, atau pada output ALU untuk
menyediakan kapabilitas paska-pergeseran. Dalam beberapa kasus, operasi
pergeseran disertakan dengan ALU. Pengkodean operasi ALU untuk CPU
ditentukan dalam Tabel 4.2.3. Field OPR memiliki lima bit dan setiap operasi
ditandai dengan nama simbolis.
8
variabel pilihan. Misalnya, operasi mikro kurang yang diberikan oleh
pernyataan
R1 ← R2 – R3
Word kontrol untuk operasi mikro ini dan beberapa lainnya tercantum dalam
Tabel 4.2.4.
Sebutan Simbolis
Operasi mikro Word kontrol
SELA SELB SELD OPR
R1 ← R2 – R3 R2 R3 R1 SUB 010 011 001 00101
R4 ← R4 R5 R4 R5 R4 OR 100 101 100 01010
R6 ← R6 + 1 R6 - R6 INCA 110 000 110 00001
R7 ← R1 R1 - R7 TSFA 001 000 111 00000
Output ← R2 R2 - Kosong TSFA 010 000 000 00000
Output ← Input Input - Kosong TSFA 000 000 000 00000
R4 ← shl R4 R4 - R4 SHLA 100 000 100 11000
R5 ← 0 R5 R5 R5 XOR 101 101 101 01100
Tabel 4.2.4 Contoh Operasi Mikro untuk CPU
Catatan bahwa:
• Kami menetapkan 000 untuk setiap field yang tidak digunakan ketika
merumuskan word kontrol biner, meskipun angka biner lainnya dapat
digunakan.
9
• Untuk menempatkan isi register ke terminal output, kami menempatkan
isi register ke input A ALU, tetapi tidak ada register yang dipilih untuk
menerima data. Operasi ALU TSFA menempatkan data dari register,
melalui ALU, ke terminal output. Transfer langsung dari input ke output
dilakukan dengan word kontrol dari semua 0 (membuat field B 000).
4.3 O R G A N ISA SI S TA C K
Fitur yang berguna yang termasuk dalam CPU dari kebanyakan komputer
adalah stack atau daftar last-in, first-out (LIFO) atau terakhir-masuk, pertama-
keluar. Stack adalah perangkat penyimpanan yang menyimpan informasi
sedemikian rupa sehingga elemen yang disimpan terakhir adalah elemen
pertama yang diambil.
Stack pada komputer digital pada dasarnya adalah sebuah unit memori dengan
sebuah register alamat yang hanya bisa menghitung (setelah nilai awal
dimasukkan ke dalamnya). Register yang menyimpan alamat untuk stack
disebut stack pointer (SP) karena nilainya selalu menunjuk pada elemen teratas
dalam stack. Register stack selalu tersedia untuk dibaca atau ditulis. Isi word
lah yang disisipkan atau dihapus.
10
menunjukkan organisasi stack register 64-word. Register stack pointer SP berisi
angka biner yang nilainya sama dengan alamat word yang saat ini ada di atas
stack. Tiga elemen ditempatkan dalam stack: A, B, dan C, sesuai urutan itu.
Elemen C ada di atas stack sehingga isi SP sekarang adalah 3.
Alamat
63
FULL EMT
Y
4
SP C 3
B 2
A 1
0
DR
Dalam stack 64-word, stack pointer berisi 6 bit karena 26 = 64. Karena
SP hanya memiliki enam bit, ia tidak dapat melebihi angka yang lebih besar
dari 63 (111111 dalam biner). Ketika 63 bertambah 1, hasilnya adalah 0 karena
111111 + 1 = 1000000 dalam biner, tetapi SP hanya dapat mengakomodasi
enam least significant bit. Demikian pula, ketika 000000 dikurangi dengan 1,
hasilnya adalah 111111. Register satu-bit FULL diatur ke 1 ketika stack penuh,
dan register satu-bit EMTY diatur ke 1 ketika stack kosong. DR adalah register
data yang menyimpan data biner untuk ditulis atau dibaca dari stack.
11
M[SP] ← DR Tulis elemen di atas stack
If (SP = 0) then (FULL ← 1) Periksa jika stack sudah penuh
EMTY ← 0 Tandai bahwa stack tidak kosong
12
Alamat
Unit memori
PC 1000
Program
(instruksi)
AR 2000
Data
(operan)
3000
Stack
3997
SP 3998
3999
4000
4001
DR
Gambar 4.3.2 Memori komputer dengan segmen program, data, dan stack.
Seperti yang ditunjukkan pada Gambar 4.3.2, nilai awal SP adalah 4001 dan
stack bertambah dengan menurunnya alamat. Jadi elemen pertama yang
disimpan di stack adalah di alamat 4000, elemen kedua disimpan di alamat 3999,
dan alamat terakhir yang dapat digunakan untuk stack adalah 3000. Tidak ada
ketentuan yang tersedia untuk pemeriksaan batas stack.
Kita berasumsi bahwa elemen dalam stack berkomunikasi dengan register data
DR. Elemen baru dimasukkan dengan operasi push sebagai berikut:
SP ← SP – 1
M[SP] ← DR
13
Stack pointer diturunkan sehingga menunjuk ke alamat word berikutnya.
Operasi penulisan memori memasukkan word dari DR ke bagian atas stack.
Elemen baru dihapus dengan operasi pop sebagai berikut:
DR ← M[SP]
SP ← SP + 1
Elemen teratas dibaca dari stack ke DR. Stack pointer kemudian dinaikkan
untuk menunjuk elemen berikutnya dalam stack.
Stack pointer dimuat dengan nilai awal. Nilai awal ini harus menjadi alamat
bawah dari stack yang ditetapkan dalam memori. Untuk selanjutnya, SP secara
otomatis diturunkan atau dinaikkan dengan setiap operasi push atau pop.
Keuntungan dari stack memori adalah CPU dapat merujuknya tanpa harus
menentukan alamat, karena alamat selalu tersedia dan secara otomatis
diperbarui dalam stack pointer.
A*B+C*D
14
Tanda bintang (yang menunjukkan perkalian) ditempatkan di antara dua
operan A dan B atau C dan D. Nilai plusnya adalah di antara kedua produk.
Untuk mengevaluasi ekspresi aritmatika ini, perlu untuk menghitung hasil A *
B, menyimpan hasil ini saat menghitung C * D, dan kemudian menjumlahkan
kedua hasil. Dari contoh ini kita melihat bahwa untuk mengevaluasi ekspresi
aritmatika dalam notasi infix perlu untuk memindai bolak-balik sepanjang
ekspresi untuk menentukan operasi selanjutnya yang akan dilakukan.
A*B+C*D
AB*CD*+
dan dievaluasi sebagai berikut: Memindai ekspresi dari kiri ke kanan. Ketika
operator tercapai, lakukan operasi dengan dua operan yang ditemukan di sisi
kiri operator. Hapus dua operan dan operator dan gantilah dengan jumlah yang
diperoleh dari hasil operasi. Lanjutkan untuk memindai ekspresi dan ulangi
prosedur untuk setiap operator yang ditemui hingga tidak ada lagi operator.
15
kita melakukan semua aritmatika di dalam kurung dalam, kemudian di dalam
kurung luar, dan melakukan operasi perkalian dan pembagian sebelum operasi
penjumlahan dan pengurangan. Pertimbangkan ekspresi berikut.
(A + B) * [C * (D + E) + F]
AB+DE+C*F+*
Operasi mikro berikut dijalankan dengan stack ketika operasi dikeluarkan oleh
kontrol di komputer: (1) dua operan paling atas dalam stack digunakan untuk
operasi, dan (2) stack di-pop dan hasil operasi menggantikan operan yang lebih
rendah. Dengan mendorong operan ke dalam stack secara terus menerus dan
melakukan operasi seperti yang didefinisikan di atas, ekspresi dievaluasi dalam
urutan yang tepat dan hasil akhir tetap di atas stack.
(3 * 4) + (5 * 6)
16
34*56*+
Sekarang perhatikan operasi stack yang ditunjukkan pada Gambar 4.3.3. Setiap
kotak mewakili satu operasi stack dan panah selalu menunjuk ke atas stack.
Memindai ekspresi dari kiri ke kanan, kami menemukan dua operan. Pertama
angka 3 di-push ke dalam stack, lalu angka 4. Simbol selanjutnya adalah
operator perkalian *. Hal ini menyebabkan perkalian dua elemen teratas dalam
stack. Stack kemudian di-pop dan hasil ditempatkan di atas stack, menggantikan
dua operan semula. Selanjutnya kita menemukan dua operan 5 dan 6, sehingga
mereka didorong ke dalam stack. Operasi stack yang dihasilkan dari *
berikutnya menggantikan dua angka ini dengan hasil mereka. Operasi terakhir
melakukan penambahan aritmatika dari dua angka teratas dalam stack untuk
menghasilkan hasil akhir 42.
6
4 5 5 30
3 3 12 12 12 12 42
3 4 * 5 6 * +
4.4 F OR M A T I N STR U K SI
Komputer biasanya akan memiliki berbagai format kode instruksi. Ini adalah
fungsi dari unit kontrol dalam CPU untuk menginterpretasikan setiap kode
instruksi dan menyediakan fungsi kontrol yang diperlukan untuk memproses
instruksi. Format instruksi biasanya digambarkan dalam kotak persegi panjang
yang melambangkan bit instruksi seperti yang muncul dalam word memori atau
dalam register kontrol. Bit instruksi dibagi menjadi grup yang disebut field.
Field yang paling umum ditemukan dalam format instruksi adalah:
17
3. Field mode yang menentukan cara operan atau alamat efektif ditetapkan.
Field kode operasi suatu instruksi adalah sekelompok bit yang mendefinisikan
berbagai operasi prosesor, seperti menambah, mengurangi, komplemen, dan
menggeser. Bit yang menentukan field mode dari kode instruksi menentukan
berbagai alternatif untuk memilih operan dari alamat yang diberikan.
X = (A + B) * (C + D)
menggunakan nol, satu, dua, atau tiga instruksi alamat. Kita akan
menggunakan simbol ADD, SUB, MUL, dan DIV untuk empat operasi
aritmatika; MOV untuk operasi tipe-transfer; dan LOAD dan STORE untuk
transfer ke dan dari memori dan register AC (accumulator). Kita akan
18
menganggap bahwa operan ada di alamat memori A, B, C, dan D, dan hasilnya
harus disimpan dalam memori di alamat X.
19
Instruksi MOV memindahkan atau mentransfer operan ke dan dari memori dan
register prosesor. Simbol pertama yang tercantum dalam instruksi diasumsikan
sebagai sumber dan tujuan di mana hasil operasi ditransfer.
LOAD A AC ← M[A]
ADD B AC ← AC + B
STORE T M[T] ← AC
LOAD C AC ← M[C]
ADD D AC ← AC + D
MUL T AC ← AC * T
STORE X M[X] ← AC
PUSH A TOS ← A
20
PUSH B TOS ← B
ADD TOS ← (A + B)
PUSH C TOS ← C
PUSH D TOS ← D
ADD TOS ← (C + D)
MUL TOS ← (A + B) * (C +D)
POP X M[X] ← TOS
21
Instruksi muat memindahkan operan dari memori ke register CPU. Operasi
tambah dan kali dijalankan dengan data dalam register tanpa mengakses
memori. Hasil perhitungan kemudian disimpan dalam memori dengan instruksi
simpan.
4.5 M OD E P EN G A LA M A TA N
Field operasi dari instruksi menentukan operasi yang akan dilakukan. Operasi
ini harus dijalankan pada beberapa data yang disimpan dalam register
komputer atau word memori. Cara operan dipilih selama pelaksanaan program
tergantung pada mode pengalamatan instruksi. Mode pengalamatan
menentukan aturan untuk menafsirkan atau memodifikasi field alamat instruksi
sebelum operan benar-benar direferensikan. Komputer menggunakan teknik
mode pengalamatan untuk tujuan mengakomodasi satu atau kedua ketentuan
berikut:
Unit kontrol komputer dirancang untuk melalui siklus instruksi yang dibagi
menjadi tiga fase utama:
22
Selain itu, seperti yang dibahas di bagian sebelumnya, instruksi mungkin
memiliki lebih dari satu field alamat, dan setiap field alamat dapat dikaitkan
dengan mode pengalamatannya sendiri.
M ode Sisipan: Dalam mode ini operan ditentukan secara implisit dalam
M ode R egister: Dalam mode ini operan berada di register yang berada
di dalam CPU. Register tertentu dipilih dari field register dalam instruksi.
Field k-bit dapat menentukan salah satu dari register 2k.
23
M ode Tidak Langsung R egister: Dalam mode ini instruksi
Field alamat instruksi digunakan oleh unit kontrol di CPU untuk mendapatkan
operan dari memori. Terkadang nilai yang diberikan dalam field alamat adalah
alamat operan, tetapi kadang-kadang hanya alamat dari mana alamat
penghitungan operan. Untuk membedakan antara berbagai mode pengalamatan,
perlu untuk membedakan antara bagian alamat dari instruksi dan alamat efektif
yang digunakan oleh kontrol ketika menjalankan instruksi. Alamat efektif
didefinisikan sebagai alamat memori yang diperoleh dari perhitungan yang
ditentukan oleh mode pengalamatan yang diberikan. Alamat efektif adalah
24
alamat operan dalam instruksi tipe-komputasi. Ini adalah alamat di mana
kontrol cabang menanggapi instruksi tipe-cabang.
M ode A lam at Langsung: Dalam mode ini alamat efektif sama dengan
25
berisi angka 24. Instruksi di lokasi 825 dibaca dari memori selama fase
fetch dan penghitung program kemudian ditambahkan oleh satu ke satu.
826. Perhitungan alamat efektif untuk mode alamat relatif adalah 826 +
24 = 850. Ini merupakan 24 lokasi memori lebih lanjut dari alamat
instruksi berikutnya. Pengalamatan relatif sering digunakan dengan
instruksi tipe-cabang ketika alamat cabang berada di sekitar kata
instruksi itu sendiri. Ini menghasilkan field alamat yang lebih pendek
dalam format instruksi karena alamat relatif dapat ditentukan dengan
jumlah bit yang lebih kecil dibandingkan dengan jumlah bit yang
diperlukan untuk menunjuk seluruh alamat memori.
M ode P engalam atan Terindeks: Dalam mode ini isi register indeks
26
M ode P engalam atan R egistrasi D asar: Dalam mode ini, isi register
27
Alamat Memori
XR = 100
AC 450
399
400 700
500 800
600 900
702 325
800 300
Field mode instruksi dapat menentukan salah satu dari sejumlah mode. Untuk
setiap mode yang memungkinkan, kita menghitung alamat efektif dan operan
yang harus dimuat ke AC.
Dalam mode alamat langsung, alamat efektif adalah bagian alamat dari
instruksi 500 dan operan yang akan dimuat ke AC adalah 800.
Dalam mode langsung, word kedua dari instruksi tersebut diambil sebagai
operan daripada alamat, jadi 500 adalah dimuat ke AC. (Alamat efektif dalam
kasus ini adalah 201.)
Dalam mode tidak langsung, alamat efektif disimpan dalam memori pada
alamat 500. Oleh karena itu, alamat efektif adalah 800 dan operan adalah 300.
28
Dalam mode relatif, alamat efektif adalah 500 + 202 = 702 dan operan adalah
325. (Perhatikan bahwa nilai dalam PC setelah fase fetch dan selama fase
execute adalah 202.)
Dalam mode indeks, alamat efektif adalah XR + 500 = 100 + 500 = 600 dan
operan adalah 900.
Dalam mode register, operan berada dalam R1 dan 400 dimuat ke AC. (Tidak
ada alamat efektif dalam kasus ini.)
Dalam mode tidak langsung register, alamat efektif adalah 400, yaitu isi R1 dan
operan yang dimuat ke AC adalah 700.
Mode auto-naik sama dengan mode tidak langsung register, kecuali bahwa R1
bertambah menjadi 401 setelah eksekusi instruksi. Mode auto-turun
menurunkan R1 menjadi 399 sebelum eksekusi instruksi. Operan yang dimuat
ke AC sekarang adalah 450.
Tabel 4.5.1 mendaftar nilai-nilai alamat efektif dan operan dimuat ke AC untuk
sembilan mode pengalamatan.
4.6 T R A N SFER D A N M A N IP U LA SI D A TA
Komputer menyediakan serangkaian instruksi yang luas untuk memberikan
pengguna fleksibilitas untuk melakukan berbagai tugas komputasi. Set instruksi
dari komputer yang berbeda berbeda satu sama lain, sebagian besar dalam cara
29
operan ditentukan dari field alamat dan mode. Operasi yang sebenarnya
tersedia dalam set instruksi tidak jauh berbeda dari satu komputer ke komputer
lainnya. Kebetulan penentuan kode biner dalam field kode operasi berbeda di
komputer yang berbeda, bahkan untuk operasi yang sama. Mungkin juga bahwa
nama simbolis yang diberikan untuk instruksi dalam notasi bahasa assembly
berbeda di komputer yang berbeda, bahkan untuk instruksi yang sama. Namun
demikian, ada satu set operasi dasar yang sebagian besar, jika tidak semua,
komputer termasuk dalam daftar instruksi mereka.
Nama Mnemonik
Muat LD
Simpan ST
Pindah MOV
Tukar XCH
Input IN
Output OUT
Push PUSH
Pop POP
30
Instruksi muat sebagian besar telah digunakan untuk menunjuk sebuah transfer
dari memori ke register prosesor, biasanya akumulator. Instruksi simpan
menunjuk sebuah transfer dari register prosesor ke memori. Instruksi pindah
telah digunakan di komputer dengan banyak register CPU untuk menunjuk
sebuah transfer dari satu register ke register lainnya. Ini juga telah digunakan
untuk transfer data antara register CPU dan memori atau antara dua word
memori. Instruksi tukar bertukar informasi antara dua register atau register dan
word memori. Instruksi input dan output mentransfer data di antara register
prosesor dan terminal input atau output. Instruksi push dan pop mentransfer
data antara register prosesor dan stack memori.
Konvensi
Mode Transfer Register
Assembly
Alamat langsung LD ADR AC ← M[ADR]
Alamat tidak langsung LD @ADR AC ← M[M[ADR]]
Alamat relatif LD $ADR AC ← M[PC + ADR]
Operan langsung LD #NBR AC ← NBR
Pengalamatan indeks LD ADR(X) AC ← M[ADR + XR]
Register LD R1 AC ← R1
Tidak langsung register LD (R1) AC ← M[R1]
Auto-naik LD (R1)+ AC ← M[R1], R1 ← R1 + 1
Tabel 4.6.2 Delapan Mode Pengalamatan untuk Instruksi Muat
31
alamat, NBR adalah angka atau operan, X adalah register indeks, Rl adalah
register prosesor, dan AC adalah register akumulator. Karakter @
melambangkan alamat tidak langsung. Karakter $ sebelum alamat membuat
alamat relatif ke penghitung program PC. Karakter # mendahului operan
dalam instruksi mode-langsung. Instruksi mode terindeks dikenali oleh register
yang ditempatkan dalam tanda kurung setelah alamat simbolik. Mode register
dilambangkan dengan memberikan nama register prosesor. Dalam mode tidak
langsung register, nama register yang menyimpan alamat memori dilampirkan
dalam tanda kurung. Mode auto-naik dibedakan dari mode tidak langsung
register dengan menempatkan nilai tambah setelah register dikurung. Mode
auto-turun akan menggunakan minus sebagai gantinya. Untuk dapat menulis
program bahasa assembly untuk komputer, perlu mengetahui jenis instruksi
yang tersedia dan juga harus terbiasa dengan mode pengalamatan yang
digunakan di komputer tertentu.
1. Instruksi aritmatika
2. Instruksi manipulasi logis dan bit
3. Instruksi geser
32
4.6.2.1 Instruksi A ritm atika
Daftar instruksi aritmatika tipikal diberikan pada Tabel 4.6.3. Instruksi naik
menambahkan 1 ke nilai yang disimpan dalam register atau word memori. Salah
satu karakteristik umum dari operasi naik ketika dieksekusi dalam register
prosesor adalah bahwa angka biner dari semua 1 ketika dinaikkan menghasilkan
hasil semua 0. Instruksi turun mengurangi 1 dari nilai yang disimpan dalam
register atau word memori. Angka dengan semua 0, ketika diturunkan,
menghasilkan angka dengan semua 1.
Nama Mnemonik
Naik INC
Turun DEC
Tambah ADD
Kurang SUB
Kali MUL
Bagi DIV
Tambah dengan bawaan ADDC
Kurang dengan pinjaman SUBB
Negasi (komplemen 2an) NEG
Tabel 4.6.3 Instruksi Aritmatika Tipikal
Instruksi tambah, kurang, kali, dan bagi mungkin tersedia untuk berbagai jenis
data. Tipe data yang diasumsikan berada dalam register prosesor selama
pelaksanaan operasi aritmatika ini termasuk dalam definisi kode operasi.
Instruksi aritmatika dapat menentukan data titik-tetap atau titik-mengambang,
data biner atau desimal, data presisi-tunggal atau presisi-ganda. Tidak jarang
menemukan komputer dengan tiga atau lebih instruksi tambah: satu untuk
bilangan bulat biner, satu untuk operan titik-mengambang, dan satu untuk
operan desimal. Mnemonik untuk tiga instruksi tambahan yang menentukan
tipe data berbeda ditunjukkan di bawah ini.
33
ADDF Tambah dua angka titik-mengambang
ADDD Tambah dua angka desimal dalam BCD
Instruksi logis melakukan operasi biner pada string bit yang disimpan dalam
register. Mereka berguna untuk memanipulasi bit secara individu atau
sekelompok bit yang mewakili informasi kode-biner. Instruksi logis
mempertimbangkan setiap bit operan secara terpisah dan memperlakukannya
sebagai variabel Boolean. Dengan aplikasi yang tepat dari instruksi logis, ada
lah mungkin untuk mengubah nilai bit, untuk menghapus sekelompok bit, atau
untuk memasukkan nilai bit baru ke dalam operan yang disimpan dalam register
atau word memori.
Beberapa instruksi manipulasi logis dan bit tipikal tercantum pada Tabel 4.6.4.
Instruksi hapus menyebabkan operan yang ditentukan digantikan oleh D's.
Instruksi komplemen menghasilkan komplemen 1an dengan membalikkan
semua bit operan. Instruksi AND, OR, dan XOR menghasilkan operasi logis
yang sesuai pada bit individual dari operan. Meskipun mereka melakukan
operasi Boolean, ketika digunakan dalam instruksi komputer, instruksi logis
harus dianggap sebagai melakukan operasi manipulasi bit. Ada tiga operasi
manipulasi bit yang mungkin: bit yang dipilih dapat dihapus ke 0, atau dapat
diatur ke 1, atau dapat dilengkapi. Tiga instruksi logis biasanya diterapkan
untuk melakukan hal itu.
Nama Mnemonik
Hapus CLR
Komplemen COM
AND AND
OR OR
Exclusive-OR XOR
Hapus bawaan CLRC
Setel bawaan SETC
Komplemen bawaan COMC
34
Aktifkan interupsi EI
Nonaktifkan interupsi DI
Beberapa instruksi manipulasi bit lainnya termasuk dalam Tabel 4.6.4. Masing-
masing bit seperti bawaan dapat dibersihkan, disetel, atau dikomplemen dengan
instruksi yang sesuai. Contoh lain adalah flip-flop yang mengontrol fasilitas
interupsi dan diaktifkan atau dinonaktifkan dengan cara instruksi manipulasi
bit.
Instruksi untuk menggeser isi operan cukup berguna dan sering diberikan dalam
beberapa variasi. Geser adalah operasi di mana bit word dipindahkan ke kiri
atau kanan. Bit yang digeser di akhir word menentukan tipe geser yang
digunakan. Instruksi geser dapat menentukan pergeseran logis, pergeseran
aritmatika, atau operasi tipe-putar. Dalam kasus mana pun, pergeseran
mungkin ke kanan atau ke kiri.
Nama Mnemonik
Geser kanan logis SHR
Geser kiri logis SHL
Geser kanan aritmatika SHRA
Geser kiri aritmatika SHLA
Putar kanan ROR
Putar kiri ROL
Putar kanan melalui bawaan RORC
Putar kiri melalui bawaan ROLC
35
adalah operasi geser-kanan dengan bit akhir tetap sama. Instruksi geser-kiri
aritmatika memasukkan 0 ke posisi akhir dan identik dengan instruksi geser-
kiri logis. Untuk alasan ini banyak komputer tidak memberikan instruksi geser-
kiri aritmatika yang berbeda ketika instruksi geser-kiri logis sudah tersedia.
Beberapa komputer memiliki format multi-field untuk instruksi geser. Satu field
berisi kode operasi dan yang lainnya menentukan jenis pergeseran dan berapa
kali operan akan digeser. Format kode instruksi yang memungkinkan dari
instruksi geser dapat mencakup lima field sebagai berikut:
Di sini OP adalah field kode operasi; REG adalah alamat register yang
menentukan lokasi operan; TYPE adalah field 2-bit yang menentukan empat
jenis pergeseran yang berbeda; RL adalah field 1-bit yang menentukan
pergeseran ke kanan atau kiri; dan COUNT adalah bidang k-bit yang
menetapkan hingga 2k – 1 pergeseran. Dengan format seperti itu, dimungkinkan
untuk menentukan jenis pergeseran, arah, dan jumlah pergeseran, semuanya
dalam satu instruksi.
4.7 K ON TR OL P R OG R A M
Instruksi selalu disimpan di lokasi memori yang berurutan. Saat diproses dalam
CPU, instruksi diambil dari lokasi memori berurutan dan dieksekusi. Setiap kali
instruksi diambil dari memori, penghitung program dinaikkan sehingga berisi
36
alamat instruksi berikutnya secara berurutan. Setelah pelaksanaan transfer data
atau instruksi manipulasi data, kontrol kembali ke siklus pengambilan dengan
penghitung program yang berisi alamat instruksi selanjutnya secara berurutan.
Di sisi lain, suatu tipe instruksi kontrol program, ketika dieksekusi, dapat
mengubah nilai alamat di penghitung program dan menyebabkan aliran kontrol
diubah. Dengan kata lain, instruksi kontrol program menentukan kondisi untuk
mengubah isi penghitung program, sementara instruksi transfer dan manipulasi
data menentukan kondisi untuk operasi pemrosesan data. Perubahan nilai
penghitung program sebagai hasil dari pelaksanaan instruksi kontrol program
menyebabkan jeda dalam urutan pelaksanaan instruksi. Ini adalah fitur penting
dalam komputer digital, karena menyediakan kontrol atas aliran eksekusi
program dan kemampuan untuk bercabang ke segmen program yang berbeda.
Nama Mnemonik
Cabang BR
Lompat JMP
Lewat SKP
Panggil CALL
Kembali RET
Banding (dengan pengurangan) CMP
Uji (dengan meng-AND-kan) TST
Tabel 4.7.1 Instruksi Kontrol Program Tipikal
37
Instruksi cabang dan lompat mungkin bersyarat atau tanpa syarat. Instruksi
cabang tanpa syarat menyebabkan cabang ke alamat yang ditentukan tanpa
persyaratan apa pun. Instruksi cabang bersyarat menentukan kondisi seperti
bercabang jika positif atau bercabang jika nol. Jika kondisi terpenuhi,
penghitung program dimuat dengan alamat cabang dan instruksi berikutnya
diambil dari alamat ini. Jika kondisi tidak terpenuhi, penghitung program tidak
berubah dan instruksi berikutnya diambil dari lokasi berikutnya secara
berurutan.
Instruksi lewat tidak memerlukan field alamat dan karenanya disebut instruksi
alamat-nol. Instruksi lewat bersyarat akan melewati instruksi berikutnya jika
kondisinya terpenuhi. Ini dilakukan dengan menaikkan penghitung program
selama fase execute selain dinaikkan saat fase fetch. Jika kondisi tidak terpenuhi,
kontrol melanjutkan dengan instruksi berikutnya dalam urutan di mana
pemrogram memasukkan instruksi cabang tanpa syarat. Dengan demikian
sepasang instruksi lewat-cabang menyebabkan cabang jika kondisinya tidak
terpenuhi, sedangkan instruksi cabang bersyarat tunggal menyebabkan cabang
jika kondisinya terpenuhi.
38
4.7.1 K ondisi B it Status
Kadang-kadang baik untuk melampirkan rangkaian ALU di CPU dengan
register status di mana kondisi bit status dapat disimpan untuk analisis lebih
lanjut. Bit status juga disebut bit kode-kondisi atau bit flag. Gambar 4.7.1
menunjukkan diagram blok ALU 8-bit dengan register status 4-bit. Keempat
bit status dilambangkan dengan C, S, Z, dan V. Bit disetel atau dihapus sebagai
hasil dari operasi yang dilakukan dalam ALU.
39
Gambar 4.7.1 Bit Register Status
40
Kondisi perbandingan unsigned (A – B)
BHI Cabang jika lebih tinggi A >B
BHE Cabang jika lebih tinggi atau sama A ≥B
BLO Cabang jika lebih rendah A <B
BLOE Cabang jika lebih rendah atau sama A ≤B
BE Cabang jika sama A =B
BNE Cabang jika tidak sama A ≠B
Kondisi perbandingan signed (A – B)
BGT Cabang jika lebih besar A >B
BGE Cabang jika lebih besar atau sama A ≥B
BLT Cabang jika lebih kecil A <B
BLE Cabang jika lebih kecil atau sama A ≤B
BE Cabang jika sama A =B
BNE Cabang jika tidak sama A ≠B
Pertimbangkan ALU 8-bit seperti yang ditunjukkan pada Gambar 4.7.1. Nomor
unsigned terbesar yang dapat ditampung dalam 8 bit adalah 255. Kisaran angka
signed adalah antara +127 dan –128. Pengurangan dua angka adalah sama
walaupun signed atau unsigned dalam representasi komplemen 2an. Misalkan A
= 11110000 dan B = 00010100. Untuk melakukan A – B, ALU mengambil
komplemen 2an dari B dan menambahkannya ke A.
41
mulai mengeksekusi set instruksi. Setelah subrutin dijalankan, cabang dibuat
kembali ke program utama.
42
Jika subrutin lain dipanggil oleh subrutin saat ini, alamat kembali baru di-push
ke dalam stack, dan seterusnya. Instruksi kembali dari subrutin terakhir
diimplementasikan oleh operasi mikro berikut:
Setelah sebuah program diinterupsi dan rutin servis telah dijalankan, CPU
harus kembali ke kondisi yang sama persis ketika terjadi interupsi. Hanya jika
ini terjadi maka program yang terinterupsi dapat melanjutkan persis seolah-
olah tidak ada yang terjadi. Keadaan CPU pada akhir siklus eksekusi (ketika
interupsi dikenali) ditentukan dari:
Kumpulan semua kondisi bit status dalam CPU kadang-kadang disebut word
status program atau PSW (program status word). PSW disimpan dalam register
perangkat keras terpisah dan berisi informasi status yang mencirikan kondisi
CPU. Biasanya, ini termasuk bit status dari operasi ALU terakhir dan itu
menentukan interupsi yang diizinkan terjadi dan apakah CPU beroperasi dalam
mode pengawas atau pengguna. Banyak komputer memiliki sistem operasi tetap
yang mengontrol dan mengawasi semua program lain di komputer. Ketika CPU
menjalankan program yang merupakan bagian dari sistem operasi, dapat
dikatakan bahwa itu berada dalam mode supervisor atau sistem. Instruksi
43
tertentu diistimewakan dan hanya dapat dijalankan dalam mode ini. CPU
biasanya dalam mode pengguna saat menjalankan program pengguna. Mode di
mana CPU beroperasi pada waktu tertentu ditentukan dari bit status khusus
di PSW.
CPU tidak merespons interupsi sampai akhir eksekusi instruksi. Sebelum pergi
ke tahap fetch berikutnya, kontrol memeriksa apakah ada sinyal interupsi. Jika
44
ada interupsi yang menunggu, kontrol beralih ke siklus interupsi perangkat
keras. Selama siklus ini, isi PC dan PSW di-push ke stack. Alamat cabang untuk
interupsi tertentu kemudian ditransfer ke PC dan PSW baru dimasukkan ke
dalam register status. Program layanan sekarang dapat dijalankan mulai dari
alamat cabang dan memiliki mode CPU seperti yang ditentukan dalam PSW
baru.
Instruksi terakhir dalam program layanan adalah intruksi kembali dari interupsi.
Ketika instruksi ini dijalankan, stack di-pop untuk mengambil PSW yang lama
dan alamat kembali. PSW ditransfer ke register status dan alamat kembali ke
penghitung program. Dengan demikian keadaan CPU dipulihkan dan program
semula dapat melanjutkan eksekusi.
1. Interupsi eksternal
2. Interupsi internal
3. Interupsi perangkat lunak
Interupsi internal muncul dari penggunaan instruksi atau data yang ilegal atau
salah. Interupsi internal juga disebut perangkap. Contoh interupsi yang
45
disebabkan oleh kondisi kesalahan internal adalah register overflow, upaya
untuk membagi dengan nol, kode operasi tidak valid, stack overflow, dan
pelanggaran perlindungan. Kondisi kesalahan ini biasanya terjadi sebagai akibat
dari penghentian dini dari pelaksanaan instruksi. Program layanan yang
memproses interupsi internal menentukan langkah yang benar yang harus
diambil.
Interupsi eksternal dan internal dimulai dari sinyal yang terjadi pada perangkat
keras CPU. Interupsi perangkat lunak dimulai dengan mengeksekusi instruksi.
Interupsi perangkat lunak adalah instruksi panggilan khusus yang berperilaku
seperti interupsi daripada panggilan subrutin. Ini dapat digunakan oleh
pemrogram untuk memulai prosedur interupsi pada titik yang diinginkan dalam
program. Penggunaan interupsi perangkat lunak yang paling umum dikaitkan
dengan instruksi pangawas panggil. Instruksi ini menyediakan sarana untuk
beralih dari mode pengguna CPU ke mode pengawas. Operasi tertentu di
komputer bisa ditetapkan hanya untuk mode pengawas, seperti misalnya,
prosedur transfer input atau output yang kompleks. Program yang ditulis oleh
pengguna harus dijalankan dalam mode pengguna. Ketika transfer input atau
output diperlukan, mode supervisor diminta melalui instruksi pengawas panggil.
Instruksi ini menyebabkan gangguan perangkat lunak yang menyimpan status
CPU lama dan membawa PSW baru yang termasuk dalam mode pengawas.
Program panggilan harus meneruskan informasi ke sistem operasi untuk
menentukan tugas tertentu yang diminta.
46
4.8 R ED U C ED I N STR U TION S ET C OM P U TER (R ISC )
Pada awal 1980-an, sejumlah perancang komputer merekomendasikan agar
komputer menggunakan lebih sedikit instruksi dengan konstruksi sederhana
sehingga mereka dapat dieksekusi lebih cepat dalam CPU tanpa harus
menggunakan memori sesering mungkin. Jenis komputer ini diklasifikasikan
sebagai komputer dengan instruksi yang direduksi atau RISC (reduced
instruction set computer). Komputer dengan sejumlah besar instruksi
diklasifikasikan sebagai komputer set instruksi yang kompleks, disingkat CISC
(complex instruction set computer).
47
membutuhkan satu word dan satu byte di kata berikutnya. Pengemasan format
instruksi variabel dalam word memori dengan panjang tetap membutuhkan
sirkuit peng-dekode khusus yang menghitung byte dalam kata-kata dan
menyusun instruksi sesuai dengan panjang byte mereka.
48
2. Mode pengalamatan relatif sedikit
3. Akses memori terbatas untuk memuat dan menyimpan instruksi
4. Semua operasi dilakukan dalam register CPU
5. Format instruksi dengan panjang tetap, yang mudah diterjemahkan
6. Eksekusi instruksi siklus-tunggal
7. Kontrol bawaan daripada diprogram dengan mikro
Serangkaian instruksi kecil dari prosesor RISC umumnya terdiri dari operasi
register-ke-register, dengan hanya memuat dan menyimpan operasi sederhana
untuk akses memori. Dengan demikian setiap operan dimasukkan ke dalam
register prosesor dengan instruksi muat. Semua perhitungan dilakukan di antara
data yang disimpan dalam register prosesor. Hasil ditransfer ke memori dengan
menggunakan instruksi simpan. Fitur arsitektur ini menyederhanakan set
instruksi dan mendorong optimalisasi manipulasi register. Penggunaan hanya
beberapa mode pengalamatan hasil dari fakta bahwa hampir semua instruksi
memiliki pengalamatan register sederhana. Mode pengalamatan lain dapat
dimasukkan, seperti operan langsung dan mode relatif.
49
lama daripada operasi register. Pipelining yang efisien, serta beberapa
karakteristik lainnya, terkadang dikaitkan dengan RISC. meskipun mereka
mungkin ada di arsitektur non-RISC juga. Karakteristik lain yang dikaitkan
dengan arsitektur RISC adalah:
Sejumlah besar register berguna untuk menyimpan hasil sementara dan untuk
mengoptimalkan referensi operan. Keuntungan dari penyimpanan register
daripada penyimpanan memori adalah bahwa register dapat mentransfer
informasi ke register lain jauh lebih cepat daripada transfer informasi ke dan
dari memori. Dengan demikian operasi register-ke-memori dapat diminimalkan
dengan menjaga operan yang paling sering diakses dalam register. Studi yang
menunjukkan peningkatan kinerja untuk arsitektur RISC tidak membedakan
antara efek dari set instruksi yang dikurangi dan efek dari file register yang
besar. Karena alasan ini, sejumlah besar register di unit pemrosesan kadang-
kadang dikaitkan dengan prosesor RISC.
50
register dan meneruskan parameter dan hasil melibatkan operasi yang memakan
waktu. Beberapa komputer menyediakan beberapa bank register, dan setiap
prosedur dialokasikan bank register sendiri. Ini menghilangkan kebutuhan
untuk menyimpan dan mengembalikan nilai register. Beberapa komputer
menggunakan stack memori untuk menyimpan parameter yang diperlukan oleh
prosedur, tetapi ini membutuhkan akses memori setiap kali stack diakses.
Jumlah register yang tersedia untuk setiap lingkup dihitung sebagai berikut:
ukuran lingkup = L + 2C + G
Konsep lingkup register bersama diilustrasikan pada Gambar 4.8.1. Sistem ini
memiliki total 74 register. Register R0 hingga R9 adalah register global yang
menyimpan parameter yang dibagikan oleh semua prosedur. 64 register lainnya
51
dibagi menjadi empat lingkup untuk mengakomodasi prosedur A, B, C, dan D.
Setiap lingkup register terdiri dari 10 register lokal dan dua set 6 register yang
sama untuk register yang berdampingan. Register lokal digunakan untuk
variabel lokal. Register sama digunakan untuk pertukaran parameter dan hasil
sementara prosedur yang berdampingan. Register yang tumpang tindih
memungkinkan parameter untuk diteruskan tanpa pergerakan data yang
sebenarnya. Hanya satu lingkup register yang diaktifkan pada waktu tertentu
dengan pointer yang menunjukkan lingkup yang aktif. Setiap panggilan
prosedur mengaktifkan lingkup register baru dengan menambah pointer.
Register tinggi dari prosedur yang memanggil tumpang tindih dengan register
rendah dari prosedur yang dipanggil, dan oleh karena itu parameter secara
otomatis ditransfer dari prosedur pemanggil ke yang dipanggil.
52
R15
Sama untuk D dan A
R10
R73
Lokal untuk D
R64
R63
Sama untuk C dan D
R58
Pros D R57
Lokal untuk C
R48
R47
Sama untuk B dan C
R42
Pros C R41
Lokal untuk B
R32
R31
Sama untuk A dan B
R26
Pros B R25
Lokal untuk A
R16
R9 R15
Sama untuk semua
Sama untuk A dan D
prosedur
R0 R10
Register Pros A
Global
53
Jika prosedur B memanggil prosedur C, ia akan melewati parameter melalui
register R42 hingga R47. Ketika prosedur B siap untuk kembali pada akhir
perhitungannya, program menyimpan hasil perhitungan dalam register R26
melalui R31 dan mentransfer kembali ke lingkup register prosedur A.
Perhatikan bahwa register R10 hingga R15 adalah sama untuk prosedur A dan
D karena keempat lingkup memiliki organisasi melingkar dengan A
berdampingan dengan D.
54
5 P EN U TU P
5.1 K ESIM P U LA N
Bagian dari komputer yang melakukan sebagian besar operasi pemrosesan data
disebut unit pemrosesan pusat dan disebut sebagai CPU. CPU terdiri dari tiga
bagian utama. Set register menyimpan data perantara yang digunakan selama
pelaksanaan instruksi. Unit logika aritmatika (ALU) melakukan operasi mikro
yang diperlukan untuk menjalankan instruksi. Unit kontrol mengawasi transfer
informasi di antara register dan menginstruksikan ALU mengenai operasi yang
harus dilakukan.
CPU melakukan berbagai fungsi yang ditentukan oleh jenis instruksi yang
tergabung dalam komputer. Arsitektur komputer kadang-kadang didefinisikan
sebagai struktur dan perilaku komputer seperti yang terlihat oleh pemrogram
yang menggunakan instruksi bahasa mesin. Ini termasuk format instruksi, mode
pengalamatan, set instruksi, dan organisasi umum register CPU.
5.2 S A R A N
Setelah selesainya makalah ini, mungkin masih banyak kekurangan yang
pembaca rasakan. Maka kami selaku penyusun makalah ini berharap kritik dan
55
saran yang sifatnya membangun dari pembaca, karena kami masih dalam tahap
belajar. Atas kritik dan saran yang akan dikemukakan kami mengucapkan
terima kasih dan semoga makalah ini berguna bagi penyusun dan pembacanya.
56