Ferdinan Alberto
113511
Maghfiroh Aini
11351201397
Reza Arliansyah
113511
Ratna Sari
11351201
KATA PENGANTAR
Assalamualaikum wr.wb
Puja dan puji syukur kami panjatkan atas kehadirat Allah SWT yang telah
memberikan kami rahmat, hidayah dan inayahnya kepada kami, sehingga kami dapat
menyelesaikan makalah Arsitektur Set Instruksi ini. Sholawat dan salam semoga
selalu tercurah kepada junjungan kita Nabi besar Muhammad SAW beserta keluarga
dan para sahabatnya, yang telah membawa kita dari zaman jahiliyah menuju zaman
yang lebih baik.
Makalah ini kami buat untuk menyelesaikan tugas Arsitektur Komputer,
dalam makalah ini kami akan membahas tentang Arsitektur Set Instruksi dalam
komputer. Dengan harapan agar kita semua mengetahui pandangan terhadap
komputer.
Alhamdulillah pada kesempatan ini akhirnya kami dapat menyelesaikan
makalah yang berjudul Arsitektur Set Intruksi dimana makalah ini adalah salah satu
tuntutan dalam memenuhi salah satu tugas yang diberikan dengan mata kuliah
Arsitektur komputer. Adapun harapannya dengan terselesaikannya makalah ini
diharapkan juga dapat meningkatkan pengetahuan kita khususnya penulis tentang halhal yang berkaitan dengan tugas yang diberikan karena dengan itu kita dapat belajar
lebih baik lagi.
Dalam penulisan makalah ini pastinya terdapat kekurangan serta kesalahan
yang tidak disengaja, oleh karena itu kami mengharapkan partisipasinya serta kritik
dan sarannya yang bersifat membangun, agar menjadi makalah yang lebih baik lagi.
Akhir kata.
Wassalamualaikum wr wb.
DAFTAR ISI
Halaman
HALAMAN JUDUL
KATA PENGANTAR
DAFTAR ISI
1. Elemen Instruksi
2.
3.
4.
5.
6
8
9
9
Instruksi Representasi
Jenis Instruksi
Jumlah Alamat
Rancangan Set Instruksi
B. Types of Operand
1.
10
1. Number
10
2. Karakter
12
3. Tipe Data
13
Tipe Dasar
13
Tipe bentukan
14
15
16
2.
16
D. Types Of Operations
18
1. Data Transfer
18
2. Arithmetic
19
3. Logical
20
4. Conversion
22
5. Input / Output
24
6. Sistem Kontrol
24
29
1. Jenis-jenis OperasiPC
29
31
3. Instruksi-instruksi Load/Store
31
F. Assembly Language
32
DAFTAR PUSTAKA
35
BAB10
SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI
A. Karakteristik Mesin Instruksi
Dari sudut pandang desainer, set instruksi mesin menyediakan kebutuhan
fungsional untuk CPU : Menerapkan CPU adalah tugas yang sebagian besar
melibatkan melaksanakan set instruksi mesin. Dari sisi pengguna, pengguna yang
memilih untuk program dalam bahasa mesin (sebenarnya, dalam bahasa assembly)
menjadi
dasar struktur register dan memori, jenis data langsung didukung oleh
1. Elemen Instruksi
Setiap instruksi harus memiliki unsur-unsur yang mengandung informasi
yang diperlukan oleh CPU untuk dieksekusi. Unsur-unsur ini adalah sebagai berikut :
Operasi kode: Menentukan operasi yang akan dilakukan (misalnya ADD,
I/O). Operasi ini ditentukan oleh kode biner, yang dikenal sebagai kode
operasi, atau opcode.
Sumber operan referensi: Operasi mungkin melibatkan operand sumber satu
atau lebih yaitu operand yang input untuk operasi.
Hasil operan referensi: Operasi mungkin menghasilkan hasil.
Referensi instruksi berikutnya: ini memberitahu CPU dimana untuk mengambil
instruksi berikutnya setelah pelaksanaan instruksi ini selesai.
Instruksi berikutnya yang akan diambil terletak di memori utama atau, dalam kasus
system memori virtual, baik di memori utama atau memori sekunder (disk). Dalam
kebanyakan kasus, instruksi berikutnya akan diambil segera mengikuti instruksi saat
ini. Dalam kasus tersebut, tidak ada referensi eksplisit untuk instruksi
berikutnya. Sumber dan hasil operand dapat berada di salah satu dari tiga bidang :
instruksi
IAS,
pada
Tabel
2.1.
add
SUB
Subtract
MPY
Multiply
DIV
Divide
LOAD
STOR
Y
7
Mungkin berarti menambahkan nilai yang terkandung di Y data lokasi ke isi register
R. Dalam contoh ini, Y mengacu ke alamat sebuah lokasi di memori, dan R mengacu
pada sebuah register tertentu. Perhatikan bahwa operasi dilakukan pada isi lokasi,
bukan di alamat itu.
Dengan demikian, adalah mungkin untuk menulis sebuah program bahasa mesin
dalam bentuk simbolis. Setiap opcode simbolis memiliki representasi biner tetap, dan
programmer menentukan lokasi setiap operan simbolis. Sebagai contoh, programmer
bisa mulai dengan daftar definisi:
X = 513
Y = 514
Dan sebagainya. Sebuah program sederhana akan menerima masukan simbolis,
mengkonversi opkode dan referensi operan ke bentuk binary, dan membangun
instruksi mesin biner.
Mesin-bahasa programer jarang ke titik noneksistensi. Kebanyakan program
sekarang ditulis dalam bahasa tingkat tinggi atau, bila tidak, bahasa assembly, yang
dibahas pada akhir bab ini. Howefer, bahasa mesin simbolik tetap menjadi alat yang
berguna untuk mendeskripsikan instruksi mesin, dan kami akan menggunakannya
untuk tujuan itu.
3. Jenis Instruksi
Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau
FORTRAN. X = X+Y Pernyataan ini menginstruksiakna komputer untuk
8
menimbulkan kesulitan. Instruksi yang lebih sederhana adalah instruksi satu alamat.
Agar alamat ini dapat berfungsi, alamat perlu diimplisitkan.
5. Rancangan Set Instruksi
Salah satu hal yang paling menarik tentang rancangan komputer adalah
rancangan set instruksi. Karena rancangan ini mempengaruhi banak aspek sistem
komputer, maka rancangan set instruksi sangat kompleks. Set instruksi menentukan
banyak fungsi yang akan dilakukan oleh CPU dan karena itu memiliki efek yang
sangat menentukan implementasi CPU. 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:
Repertoi Operasi: Berapa banyak dan opersai-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.
B. Type Operand
Instruksi mesin beroperasi pada data. Kategori umum yang paling penting
dari data adalah:
Alamat
Angka
Karakter
Data logis.
Akan kita lihat, dalam membahas mode pengalamatan dalam bab 11, bahwa
alamat
sebenarnya,
perhitungan harus
sebuah
dilakukan pada
banyak
kasus, beberapa
10
untuk menentukan utama pada alamat memori virtual. Di alamat ini, konteks. dalam
konteks ini, alamat dapat dianggap sebagaiunsigned integer.
Tipe umum data yaitu :
Angka
Karakter
Data logis
Secara singkat dibahas dalam bagian ini. beberapa devine mesin, khusus tipe
data ataupun
struktur
data.
Misalnya,
mungkin
non
numerik. Ada
kebutuhan untuk
lapangan, dan
digunakan
dalam
nomor untuk
bertindak
sebagainya. Perbedaan
penting
matematika biasa
dan nomor
yang
tersimpan di komputer adalah bahwa surat itu terbatas. Ini benar dalam dua
pengertian. Pertama, ada batas dengan besarnya nomor representable pada mesin dan
kedua, dalam kasus floating-point, batas untuk presisi mereka. Dengan demikian,
programmer
dari
pembulatan,
Kami memeriksa pertama yang secara rinci dalam bab 9 itu masih mengatakan
beberapa kata tentang angka desimal.
Meskipun semua
operasi komputer
internal atau
kesepakatan sistem dengan angka desimal. Dengan demikian, ada kebutuhan untuk
konversi
dari desimal
ke biner
pada input
dan
dari biner ke
11
desimal pada
adalah
lebih
baik
untuk menyimpan
dan beroperasi pada angka dalam bentuk desimal. Representasi paling umum untuk
tujuan ini adalah kemasan desimal.
Dengan desimal dikemas, setiap digit desimal diwakili oleh kode 4-bit, dengan
cara yang jelas. Dengan demikian,
0 = 0000
1 = 0001
8 = 1000
9 = 1001
Mencatat bahwa ini adalah kode lebih efisien karena hanya 10 dari 16 mungkin
4 bit nilai digunakan. untuk membentuk angka, 4 bit kode dirangkai, biasanya dalam
kelipatan 8
bit. dengan
demikian,
kode
jelas kurang kompak
dari biner langsung diwakili oleh termasuk tanda 4 bit digit baik ditribun kiri atau
kanan untuk tanda minus.
Mesin yang
melakukan
operasi
arithmatic langsung padaangka desimal paket. Algoritma yang cukup mirip dengan
yang diuraikan
dalam
bagian
umum adalah
teks atau
string karakter,
mereka
tidak
sedangkan
dapat
dalam
komunikasi.
Sistem
ini
dirancang untuk
demikian, sejumlah kode telah dibuat oleh karakter yang diwakili oleh urutan bit.
Mungkin contoh umum awal ini adalah kode Morse, Hari ini, kode karakter
yang paling umum digunakan dalam American Standard Kode untuk Informasi
Interchange. IRA juga
banyak
digunakan di
luar Amerika
Serikat.
Setiap
karakter dalam kode ini diwakili oleh pola 7 bit yang unik, dengan demikian, 128
karakter differnt dapat direpresentasikan. Ini adalah jumlah yang lebih besar daripada
12
yang diperlukan untuk mewakili karakter yang dapat dicetak, dan beberapa pola
mewakili karakter kontrol. Beberapa karakter kontrol pada halaman.
Lain yang bersangkutan dengan prosedur komunikasi. IRA-encoded karakter
yang hampir
selalu
disimpan
dan dikirim
menggunakan 8
digunakan
bit per
untuk mendeteksi kesalahan dalam kasus yang terakhir. Bit diatur sedemikian rupa
sehingga jumlah total biner dalam setiap oktet selalu ganjil (paritas ganjil) atau
selalu genap
(even parity).
sampai 9 yang
kanan 4
bit. Ini
diwakili
adalah
Bahwa
yang
sama
memfasilitasi konversi antara IRA 7 bit dan 4 bit representasi desimal dikemas.
Kode lain
yang
digunakan untuk
mengkodekan karakter
Kode Desimal Interchange
adalah kode bit 8. Seperti IRA, EBCDIC kompatibel dengan desimal dikemas dalam
kasus EBCDIC kode 11110000 11111001 melalui mewakil1 angka 0 sampai 9.
3. Tipe Data
Setiap data memiliki tipe data, angka bulat ( integer ), angka biasa ( real ), atau
berupa karakter ( char ), dan sebagainya.
Ada 2 kategori dari tipe data yaitu:
1. Tipe dasar
a. Bilangan bulat ( integer )
Bilangan atau angka yang tidak memiliki titik desimal atau pecahan, seperti
10, +225, -10,+25.
13
Bilangan atau angka yang bisa memiliki titik desimal atau pecahan, dan ditulis
sebagai : 235.45, +13.99, -87.76 atau dalam notasi ilmiah seperti : 1.245E+03,
7.45E-02, dsb.
Bilangan tetap ( const ) adalah tipe bilangan, tidak bernilai bulat maupun
tidak, yang nilainya tidak berubah selama algoritma dilaksanakana.
d. Karakter ( character )
Karakter adalah data tunggal yang mewakili semua huruf, simbol baca, dan
juga simbol angka yang tidak dapat dioprasikan secara matematis, misalnya:
A, B, .....,Z, ?,!, dst.
14
Tipe data logik adalah tipe data yang dipergunakan untuk memberi nilai pada
hasil pembandingan, atau kombinasi pembandingan.
2. Tipe bentukan
a. Array ( larik )
Array adalah tipe data bentukan, yang merupakan wadah untuk menampung
beberapa
nilai
data
yang
sejenis.
Int nilai_ujian[10];
Kedua definisi diatas menunjukkan bahwa nilai_ujian adalah kumpulan dari 10
b. String
String adalah tipe data bentukan yang merupakan deretan karakter yang
membentuk satu kata atau satu kalimat, yang biasanya diapit oleh dua tanda
kutip.
Record adalah tipe data bentukan yang merupakan wadah untuk menampung
elemen data yang tipenya tidak perlu sama dengan tujuan mewakili satu
jenis objek.
16
2. Variabel
Variabel adalah nama yang mewakili suatu elemen data seperti : jenkel untuk
jenis kelamin, t4lahir untuk tempat lahir, dan sebagainya. Ada aturan tertentu yang
wajib diikuti dalam pemberian nama variable, antara lain:
Harus dimulai dengan abjad, tidak boleh dengan angka atau symbol.
Jangan menggunakan simbol yang bisa membingungkan seperti titik dua, titik
koma, koma, dan sebagainya.
Description
Byte,word (16 bytes),doubleword (32 bits) and quadword
Integer
Ordinal
Unpacked
Near pointer
the range 0 to 99
A 32 bit effective addresses that represents the offset
within a segment. Used for all pointers in a
nonsegmented memory and for references within a
Bit field
Byte string
up to 232 1 bits
A contiguous sequence of bytes, words or doublewords,
Floating point
Nilai dalam urutan permintaan untuk transfer bus. Seperti semua dari intel 80
86 mesin, Pentium menggunakan gaya sedikit-endian: yang, byte paling signifikan
disimpan dalam alamat terendah (lihat lampiran 10B untuk pembahasan endiannes).
Byte, kata, doubleword dan quadword disebut sebagai tipe data umum. Selain
itu, Pentium mendukung jajaran tipe data khusus yang diakui dan dioperasikan oleh
instruksi tertentu. Tabel 10.2 merangkum jenis.
Gambar 10.4 mengilustrasikan jenis Pentium data numerik. Bilangan bulat
ditandatangani adalah intwos melengkapi representasi dan mungkin 16,32 atau 64 bit
panjang. Jenis floating point sebenarnya mengacu pada satu set jenis yang digunakan
oleh unit floating-point dan dioperasikan oleh instruksi floating-point. Ketiga
representasi floating-point sesuai dengan IEEE 754 standar.
2. Daya Jenis Data Tipe
PowerPC dapat menangani jenis data 8 (byte), 16 (sindiran), 32 (kata) dan 64
(doubleword) bit panjangnya. Beberapa instruksi mengharuskan operan memori akan
berjajar dalam batas 32-bit. Secara umum, bagaimanapun, keselarasan tidak
18
diperlukan. Salah satu fitur menarik dari PowerPC adalah dapat menggunakan salah
satu gaya little-endian atau big-endian, yaitu byte paling signifikan disimpan dalam
alamat terendah atau tertinggi (lihat lampiran 10B untuk diskusi endiannes).Byte,
sindiran, kata dan doubleword bersifat umum tipe data. Prosesor menafsirkan isi dari
sebuah item yang diberikan data tergantung pada instruksi. Prosesor fixed-point
mengakui jenis data berikut.
byte unsigned: dapat digunakan untuk operasi aritmatika logis atau integer. Hal
ini diambil dari memori ke sebuah register umum dengan nol memperluas di
sebelah kiri dengan ukuran mendaftar penuh.
Unsigned sindiran: sebagai untuk byte unsigned, tetapi untuk 16-bit jumlah
Ditandatangani sindiran: digunakan untuk operasi aritmatika; dimuat ke memori
dengan tanda memperluas di kiri ke ukuran register penuh (yaitu, bit tanda
direplikasi di semua posisi kosong)
Unsigned kata: digunakan untuk operasi logis dan sebagai pointer alamat.
Sign kata: digunakan untuk operasi aritmatika
Unsigned doubleword: digunakan sebagai pointer alamat
Byte string: 0-128 byte panjang
Selain itu, PowerPC mendukung jenis data tunggal dan double-presisi floatingpoint yang didefinisikan dalam IEEE 754.
D. Types of Operation
Jumlahopcodeberbedasangat bervariasidari mesin ke mesin. Namun, jenis umum yang
samaoperasiditemukanpada mesinsemua. Sebuahkategorisasiberguna dankhasadalah sebagai
berikut.
1.
2.
3.
4.
5.
Data transfer
Arithmetic
Logical
Conversion
Input output
1. Data transfer
Jenis
yang
palingmendasar
dariinstruksimesinadalahinstruksitransfer
ditentukan.Setiap
lokasidapat
memori,
register,ataubagian
19
semuainstruksidenganoperan,moduspengalamatanuntuk
operanmasing-masing
20
Beberapa operasi dasar yang logis dapat dilakukan pada data boolean atau biner
ditunjukkan pada tabel 10.6. operasi NOT membalikkan sedikit. AND, OR, dan XOR
adalah fungsi logis yang paling umum dengan dua operan. EQUAL adalah tes biner
berguna.
Operasi ini logis dapat diterapkan bitwise untuk unit n bit data logis. demikian,
jika dua register berisi data.
(R1) = 10100101
(R2) = 00001111
Then
21
Q
0
1
0
1
NOT P
1
1
0
0
P AND Q
0
0
0
1
P OR Q
0
1
1
1
P XOR Q
0
1
1
0
P=Q
1
0
0
1
Sebagai contoh, misalkan kita ingin mengirimkan data karakter ke karakter I/O
1 perangkat pada satu waktu. jika setiap kata memori adalah 16 bit panjang dan berisi
dua karakter, kita harus membongkar karakter sebelum mereka dapat dikirim. untuk
mengirim dua karakter dalam satu kata.
1. memuat kata ke register
2. AND dengan nilai 1111111100000000. ini masker keluar karakter di sebelah
kanan.
3. bergeser ke kanan delapan kali. pergeseran karakter yang tersisa ke bagian
kanan dari register.
4. melakukan I / O. modul I / O membaca urutan lebih rendah dari 8 bit data bus.
22
pergeseran
aritmatika
memperlakukan
data
sebagai
integer
ditandatangani dan tidak bergeser sedikit tanda. pada pergeseran aritmatika yang
benar, sedikit tanda direplikasi ke posisi bit ke kanan. pada pergeseran aritmatika kiri,
pergeseran logis kiri dilakukan pada semua bit tapi sedikit tanda, yang dipertahankan.
operasi ini dapat mempercepat operasi aritmatika tertentu. dengan nomor dalam
notasi komplemen dua, pergeseran aritmatika tepat terkait dengan pembagian dengan
2, dengan pemotongan untuk nomor lama. baik pergeseran aritmatika kiri dan shift
kiri yang logis sesuai dengan perkalian dengan 2 bila ada tidak meluap. jika overflow
terjadi, aritmatika dan logika operasi shift kiri menghasilkan hasil yang berbeda,
tetapi pergeseran kiri aritmatika mempertahankan tanda nomor. karena potensi untuk
overflow, processrors banyak yang tidak termasuk instruksi ini, termasuk daya PC
dan Itanium. lain, seperti IBM S/390, lakukan menawarkan instruksi. anehnya,
architercture pentium mencakup pergeseran aritmatika kiri tetapi mendefinisikannya
menjadi identik dengan pergeseran kiri logis. Memutar, atau siklik pergeseran,
operasi melestarikan semua bit yang dioperasi. salah satu kemungkinan penggunaan
rotate adalah untuk membawa setiap bit berurutan ke dalam bit paling kiri, di mana ia
dapat diidentifikasi dengan menguji tanda data (diperlakukan sebagai angka).
seperti dengan operasi aritmatika, operasi logis melibatkan aktivitas ALU dan bisa
melibatkan operasi data transfer. tabel 10,7 memberi contoh semua shift dan memutar
operasi dibahas pada pembahasan ini.
4. Conversion
Instruksi konversi adalah mereka yang mengubah format atau beroperasi pada
format data. contoh adalah mengkonversi dari desimal ke biner. contoh dari instruksi
editing yang lebih kompleks adalah instruksi menerjemahkan S/390. instruksi ini
dapat digunakan untuk mengkonversi dari satu 8 bit kode ke yang lain, dan
dibutuhkan tiga operand:
23
TR R1, R2, L
R2 operan berisi alamat awal tabel 8 bit kode. byte L mulai dari alamat yang
ditentukan dalam R1 dijabarkan, setiap byte yang diganti
Table 10.7 examples of shift and rotate operations
Input
10100110
10100110
10100110
10100110
10100110
10100110
olehisi
darientri
Operation
Logical right shift (3 bit)
Logical left shift (3 bit)
Arithmetic right shift (3 bit)
Arithmetic left ahift (3 bit)
Right rotate (3 bit)
Left rotate (3 bit)
tabeldiindeks
olehbyteitu.misalnya,
Result
00010100
00110000
11110100
10110000
11010100
00110101
untukmenerjemahkan
yang
sama.
dengan
demikian,lokasi10F0melalui10F9akan
dan
seterusnya
sampai
9digit.sekarangmisalkan
Lokasi2100 - 2103cantainF1F9F8F4
R1berisi2100
R2berisi1000
24
Input/output petunjuk dibahas secara rinci dalam bab 7. seperti yang kita lihat,
ada berbagai appoaches diambil, termasuk diprogram terisolasi I/O. memori
dipetakan diprogram I/O, DMA, dan penggunaan prosesor I/O. implentations banyak
hanya memberikan fiew instruksi I/O, dengan tindakan spesifik yang ditentukan oleh
parameter, kode, atau kata-kata perintah.
6. Sistem Kontrol
Sistem instruksi kontrol adalah
mereka yang
dapat
prosesordalam
dieksekusi hanyaketika
kontrol adalah
sebagai
lain
adalah instruksi
untuk membaca
sistem contoh
lain
kontroluntuk
akan
salah
satu
yang segera mengikuti instruksi memori saat ini namun fraksi yang signifikan dari
instruksi dalam
program
apapun miliki
sebagai fungsi
adalah
penting untuk
dapat mengeksekusi setiap instruksi lebih dari sekali dan mungkin jutaan
instruksi untuk menerapkan apllication ini akan unthank kable jika setiap
25
atau daftar
item adalah
beberapa pengambilan
keputusan kami ingin komputer untuk melakukan satu hal jika satu
syarat memegang
jika kondisi
kuadrat dari
nomor
tersebut
dilakukan,
tapi kondisi
kesalahan dilaporkan
3. Untuk menulis dengan benar sebuah program komputer yang besar atau
bahkanukuran sedang adalah tugas yang sangat sulit. membantu jika
ada machanism untuk
dapat bekerja
potongan
per
satucabang instruksi
disebut instruksi
satuoperand-nya alamat
kecil yang
dari instruksi
berikutnya
yang
seringinstruksi adalah
jika kondisi
dalam
counter seperti
umum
dari transfer-of-
bahwa satu
demikian,
instruksi-mengukur tinggi.
Memproduksi Hubungan Instruksi
Mungkin inovasi
yang
dalam
setiap titikdalam
menelepon. prosesor diperintahkan
sebuah
pergi dan
melaksanakanseluruh
Nested Prosedur
Sebuah prosedur bersarang disebut dari dalam prosedur lain seperti yang
ditunjukkan di bawah ini. Program Utama panggilan prosedur A, yang menyerukan
prosedur B: Ketika jal B instruksi dijalankan, alamat pengirim dalam register $ ra
untuk prosedur A akan ditimpa dengan alamat pengirim untuk prosedur Prosedur B. B
akan kembali dengan benar untuk A, tapi ketika prosedur Sebuah mengeksekusi
instruksi jr, maka akan kembali lagi ke alamat pengirim untuk B, yang merupakan
instruksi berikutnya setelah jal B dalam prosedur A. Hal ini menempatkan prosedur A
dalam infinite loop.
Untuk melaksanakan linkage untuk prosedur bersarang, alamat pengirim untuk
setiap prosedur harus disimpan di tempat lain selain mendaftar $ ra. Perhatikan bahwa
prosedur call / kembali urutan adalah proses LIFO: prosedur terakhir disebut adalah
yang pertama untuk kembali. Tumpukan A adalah struktur data alami untuk
menyimpan alamat kembali untuk panggilan prosedur bersarang.
Tumpukan sistem terletak di bagian atas ruang memori pengguna dan tumbuh
ke bawah menuju alamat memori yang lebih kecil. Registrasi $ 29, juga disebut $ sp,
adalah pointer stack untuk stack sistem. Ini berisi alamat dari lokasi kosong pertama
di bagian atas stack. Tumpukan sistem ini dimaksudkan untuk penyimpanan alamat
dan
terstruktur
Tumpukan
sistem
untuk
kata
umumnya
digunakan
berukuran
untuk
menyimpan
data.
alamat
kembali. Mereka dapat didorong pada stack ketika prosedur ini disebut dan muncul
dari mengeksekusi instruksi kembali.
Sebuah alamat pengirim dalam register $ ra dapat didorong ke stack sistem
dengan kode MAL berikut:
sw $ ra, ($ sp)
menambahkan $ sp, -4
Kode berikut muncul alamat pengirim dari atas tumpukan dan
mengembalikannya dalam daftar $ ra:
menambahkan $ sp, 4
lw $ ra, ($ sp)
27
Unconditional Cabang
Sebuah instruksi cabang bersyarat menguji suatu kondisi. Jika kondisi benar, PCresetke label. Jika kondisi salah, instruksi cabang mengeksekusi no-op.
nol Tes
Tes relasional
Catatan:
x dan y mungkin tipe integer atau karakter dan mungkin variabel atau konstanta.
28
E. Pentium
1. Jenis jenis OperasiPC
PowerPC banyak memiliki jenis operasi , berikut disajikan berbagai jenis
operasi pada PowerPC :
Instruksi
Uraian
Berorientasi Pencabangan
29
bl
bc
sc
trap
lwzu
ld
Memuatkan dobleword.
lmw
lswx
add
subf
mullw
Mengalikan isi dua buah register orde rendah 32-bit dan menyimpan
hasil perkaliannya dalam register 64-bit ketiga.
divd
cmp
30
crand
and
cntlzd
Mencacah jumlah bit 0 berturutan yang berawal pada bit nol dalam
register sumber dan menempatkan hasil perhitungan dalam regiater
tujuan.
rldic
sld
lfs
fadd
fmadd
Mengalikan isi dua buah register, menambahkan isi regiater ketiga, dan
menyimpan hasilnya dalam regiater keempat.
fcmpu
dcbf
icbi
31
Ukuran data, dimana data dapat dipindahkan dalam satu byte, halfword,
word, atau doubleword. Instruksi-instruksi juga dapat digunakan untuk
memuat atau menyimpan suatu untai byte ke dalam sejumlah register atau dari
sejumlah register
Perluasan tanda, dimana pada pembuatan word dan halfword, bit-bit sebelah
kiri register 64-bit tujuan yag tidak dipakai dapat diisi dengan bilanganbilangan nol atau dengan bit tanda dari kuantitas yang dimuatkan.
32
F. Bahasa Assembly
CPU dapat memahami dan mengeksekusi instruksi-instruksi mesin. Instruksiinstruksi itu hanya berupa bilangan-bilangan biner yang tersimpan dalam computer.
Bila pemograman ingin langsung membuat program dalam bahasa mesin, masalah
programnya perlu dibuat dalam bentuk data biner. Perhatikan pernyataan bahasa
BASIC yang sederhana di bawah ini :
N=I+J+K
Misalnya kita ingin memprogram pernyataan ini dalam bahasa mesin dan
mnginisialisasi I, J, dan K masing-masing sebagai 2, 3, dan 4. Program ini
ditunjukkan pada gambar di bawah ini :
Alamat
Isi
Alamat
Instruksi
101 0010
0010 0000
0001
101
LDA 201
102 0001
0010 0000
0010
102
ADD 202
103 0001
0010 0000
0011
103
ADD 203
104 0011
0010 0000
0100
104
STA
204
Alamat
Isi
Label
Operasi
Operand
101
2201
FORMUL
LDA
102
1202
ADD
103
1203
ADD
104
3204
STA
201
0002
DATA
202
0003
DATA
203
0004
DATA
204
0000
DATA
33
Program tersebut berawal di lokasi 201. Program itu terdiri dari empat buah
instruksi :
1. Masukkan isi lokasi 201 ke dalam AC.
2. Tambahkan isi lokasi 202 ke AC.
3. Tambahkan isi lokasi 203 ke AC.
4. Simpan isi AC di lokasi 204.
Hal ini jelas merupakan proses yang membosankan dan merupakan proses yang
mudah mengalami kesalahan.
Sedikit peningkatan adalah dengan menulis program dalam heksadesimal
daripada dalam notasi biner. Kita akan menuliskan programnya sebagai baris-baris.
Setiap baris terdiri dari alamat lokasi memori dan kode heksadesimal nilai biner akan
disimpan di lokasi tersebut. Kemudian kita memerlukan sebuah program yang akan
menerima input ini, menerjemahkan setiap baris ke dalam bilangan biner, dan
menyimpannya di lokasi tertentu.
Untuk peningkatan yang lebih, kita dapat menggunakan nama simbolik atau
mnemonic pada setiap-setiap instruksi. Ini menghasilkan dalam program simbolik
yang ditunjukkan dalam gambar (c) di atas. Setiap baris input masih
mempresentasikan satu lokasi memori. Setiap baris terdiri dari tiga bidang, yang
dipisahkan dengan spasi. Bidang pertama terdiri dari lokasi memori. Untuk instruksi,
bidang kedua terdiri dari tiga buah symbol bagi opcode. Jika merupakan instruksi
yang mereferensi memori, maka bidang ketiga terdiri dari alamat-alamat. Untuk
menyimpan data yang berubah-ubah dalam sebuah lokasi, kita menemukan
pseudoinstruction (pseudoinstruksi) denga symbol DAT. Hal ini seolah-olah sebuah
indikasi bahwa bidang ketiga pada baris dari bilanganheksadesimal disimpan dalam
lokasi tertentu dalam bidang pertama.
Untuk jenis input ini kita memerlukan program yang sedikit lebih kompleks.
Program menerima setiap baris input, menghasilkan bilangan biner berdasarkan
bidang kedua dan ketiga (jika ada), dan menyimpannya di lokasi yang ditentukan oleh
bidang pertama.
Penggunaan dari suatu program simbolik membuat hidup lebih mudah tetapi
masih janggal. Khususnya, kita harus memberi alamat mutlak untuk setiap word. Hal
34
ini berarti bahwa program dan data dimuatkan hanya ke suatu lokasi dalam memori,
dan kita harus mengetahui tempat itu terlebih dahulu. Lebih buruk, misalnya, suatu
hari kita ingin mengubah program itu dengan menambah atau menghapus sebuah
baris. Hal ini akan mengubah semua almat-alamat word dan tertentu.
Sistem yang jauh lebih baik, dan lebih umum digunakan adalah dengan
menggunakan alamt-alamat simbolik. Hal ini dijelaskan pada gambar (d) di atas.
Setiaop baris mesin terdiri dari tiga bidang. Bidang pertama masih untuk alamat,
tetapi menggunakan simbolik dan bukan berupa alamat numeric absolut. Beberapa
baris tidak mempunyai alamat, yang berarti bahwa alamat baris itu, maju satu dari
alamat baris sebelumnya. Bagi instruksi referensi memori, bidang ketiga juga terdiri
dari alamat simbolik.
Dengan perbaikan terakhir ini, kita memiliki sebuah bahasa asembly. Prof yang
ditulis dalam bahasa asembly diterjemahkan kedalam bahasa mesin oleh sebuah
bahasa assembler. Program ini tidak hanya harus melakukan penerjemahan simbolik
namun juga menugaskan beberapa bentuk alamat memori menjadi alamat-alamat
simbolik.
Pengembangan bahasa asembly merupakan hal yang sangat penting dalam
evolusi teknologi computer. Ini adalah langkah awal menuju bahasa tingkat tinggi
yang digunakan saat ini. Meskipun sedikit pemrogram yang menggunakan bahasa
asembli, namu sebenarnya semua mesin menyediakannya. Mesin-mesin itu
digunakan untuk program-program system compiler dan rutin-rutin I/O.
35
DAFTAR PUSTAKA
http://lecturer.eepis-its.edu/~setia/Modul/ArKom/Pertemuan%2004.pdf
http://lecturer.ukdw.ac.id/~mahas/dossier/arkom_08.pdf
https://www.google.com/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CBsQFjAA&url=https%3A%2F
%2Fiyant201043500251.files.wordpress.com%2F2012%2F05%2Fjurnal-arsitekturdan-organisasikomputer3.docx&ei=1lKVPaKMMePuATLw4CACw&usg=AFQjCNGIGHqMeML
O_vTkQ57jsR6_g_xKiQ&cad=rja
http://sulaiman001.blogspot.com/2011/12/makalah-arsitektur-set-instruksi.html
http://www.google.com/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0CFYQFjAJ&url=http%3A%2F
%2Fmargono.staff.uns.ac.id%2Ffiles%2F2009%2F06%2Fsetinstruksi.ppt&ei=FmmKVJCHCNaOuATDsYCACg&usg=AFQjCNEVQYQQ1aw9
A6Al9-1NbO18gVPDqA&cad=rja
http://www.google.com/url?
sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CDAQFjAD&url=http%3A%2F
%2Fwww.mdp.ac.id%2Fmateri%2F2010-2011-2%2FSP354%2F052110%2FSP354052110-5567.pptx&ei=FmmKVJCHCNaOuATDsYCACg&usg=AFQjCNHbSR2wuJX0JULQC
Ap2nX7phz07Gg&cad=rja
http://eprints.binadarma.ac.id/883/1/ARSITEK%20KOMPUTER%205.pdf
36
37