Anda di halaman 1dari 43

Makalah Arsitektur Komputer dan Bahasa Assembly

SET INSTRUKSI

Dosen Pengampu:
Victor Amrizal

Di Susun Oleh:
1. Lianto Nur Ahmad Syahputra (11170910000015)
2. Alam Wahyu Hutomo (11170910000023)
3. Yollan Gusnanda (111709100000)

TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UIN SYARIF HIDAYATULLAH JAKARTA
2018

i
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
hal-hal 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.

Wassalamualaikum Wr, Wb,.

Ciputat, 4 November 2018

Penyusu

i
DAFTAR ISI

Cover

Kata Pengantar .................................................................................. i

Daftar Isi ............................................................................................ ii

BAB I Pendahuluan

A. Latar Belakang ....................................................................... 1


B. Rumusan Masalah ................................................................... 1

BAB II Pembahasan

A. Karakteristik Instruksi Mesin ................................................. 2


A.1. Elemen Instruksi
A.2. Instruksi Representrasi
A.3. Jenis Instruksi
A.4. Jumlah Alamat
A.5. Rancangan Set Instruksi
B. Tipe – Tipe Operand ............................................................... 12
C. Tipe – Tipe Operasi ................................................................
D. Pengalamatan
D.1. Direct Addressing
D.2. Indirect Addressing
D.3. Imediatte Addressing
D.4. Pengenalan Pada Register Addressing
E. Format Instruksi
E.1. Jenis – jenis Operand
E.2. Jenis – jenis Instruksi
E.3. Transfer Data

BAB III Penutup

A. Kesimpulan ............................................................................ 26

ii
B. Saran ...................................................................................... 26

Daftar Pustaka

iii
BAB I
PENDAHULUAN
A. Latar Belakang

Set Instruksi (Instruction Set, atau Instruction Set Architecture (ISA))


didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh
para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis
instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori,
penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).

ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner


(opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah
desain prosesor tertentu. Kumpulan opcode tersebut, umumnya disebut sebagai
bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang
populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC,
Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.

ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik


yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan
teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup
microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-
komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang
sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon
mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi
jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat
diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM
System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang
diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai
mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan
aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat
dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus
memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini
membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor
CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-
bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan
dengannya.

1
B. Rumusan Masalah
1. Apa yang dimaksud dengan Set Instruksi?
2. Jelaskan Karakteristik Instruksi Mesin?
3. Jelaskan Tipe-tipe Operand dan Tipe-tipe Set Instruksi?
4. Jelaskan bagaimana Pengalamatan dan format instruksi?

BAB II
PEMBAHASAN
A. Karakteristik Instruksi Mesin
Menurut Kamus Besar Bahasa Indonesia, Karakteristik adalah ciri-ciri
khusus atau mempunyai sifat khas sesuai dengan perwatakan tertentu. Instruksi
adalah perintah atau arahan (untuk melakukan suatu pekerjaan atau melaksanakan
suatu tugas). Mesin adalah perkakas untuk menggerakkan, atau membuat sesuatu
yang dijalankan dengan roda-roda dan digerakkan oleh tenaga manusia atau motor
penggerak yang menggunakan bahan bakar minyak atau tenaga alam.
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
mesin, dan fungsi dari ALU.

2
Jadi, karakteristik-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. Set fungsi dari instruksi-instruksi yang berbeda yang dapat di eksekusi
oleh CPU dikenal sebagai set instruksi CPU.

A.1 Elemen Instruksi


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 :

1. Kode Operasi : menentukan operasi-operasi yang akan dilakukan


(misalnya: ADD,I/O). Operasi itu dispesifilan oleh sebuah kode biner,
dikenal sebagai kode operasi.
2. Sumber Operand Referensi : Operasi dapat melibatkan satu atau lebih
operand sumber, dengan kata lain, operand adalah input bagi operasi.
3. Hasil operan referensi: Operasi mungkin menghasilkan hasil.
4. 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. Umumnya, instruksi yang akan
segera diambil selanjutnya, berada setelah instruksi saat itu. Ketika
acuan eksplisit dibutuhkan, maka alamat memori utama atau alamat
memori virtual harus disiapkan. 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

3
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.

Untuk dapat dieksekusi, suatu instruksi harus berisi elemen informasi yang
diperlukan CPU secara lengkap dan jelas.
Elemen instruksi mesin di antaranya adalah :
 Operation Code (OP Code)
menspesifikasi operasi yang akan dilakukan Kode Operasi
berbentuk Kode Biner.
 Source Operand Reference
operasi dapat berasal dari satu sumber. Operand adalah input
operasi.
 Result Operand Reference
hasil operasi/keluaran operasi.
 Next Instruction Reference
menginformasikan CPU ke instruksi berikutnya yang harus diambil
dan dieksekusi.
A.2. Instruksi Representasi

Instruksi komputer direpresentasikan oleh sekumpulan bit. Instruksi dibagi


menjadi beberapa field. Field - field ini diisi oleh elemen - elemen instruksi yang
membawa informasi bagi operasi CPU. Layout instruksi ber-format instruksi.
Format Instruksi :

[opcode] [alamat]

 Kode operasi (opcode) direpresentasikan dengan singkatan - singkatan yang


disebut mnemonic.

4
 Mnemonic mengindikasikan suatu operasi bagi CPU.
Contoh mnemonic:
 ADD = penambahan.
 SUB = subtract (pengurangan).
 LOAD = muatkan data ke memori.

Contoh representasi operand secara simbolik:

ADD X, Y

artinya: tambahkan nilai yang berada pada lokasi Y dengan isi register X
dan simpan hasilnya di register X.

- Programmer dapat menuliskan program bahasa mesin dalam bentuk


simbolik.
- Setiap opcode simbolik memiliki representasi biner yang tetap dan
programmer dapat menetapkan lokasi masing-masing operand.

Korelasi :

a. Terlihat hubungan antara ekspresi bahasa tingkat tinggi dengan bahasa


mesin.
b. Dalam bahasa tangkat tinggi, operasi dinyatakan dalam bentuk aljabar
singkat menggunakan variable.
c. Dalam bahasa mesin hal tersebut diekspresikan dalam operasi perpindahan
antar register.
d. Dapat ditarik kesimpulan bahwa instruksi-instruksi mesin harus mampu
mengolah data sebagai implementasi keinginan-keinginan kita.
e. Terdapat kumpulan unik set instruksi, yang dapat digolongkan dalam jenis-
jenisnya, yaitu:

 Pengolahan data (data processing)

Meliputi operasi-operasi aritmatika dan logika. Operasi aritmatika memiliki


kemampuan komputasi untuk pengolahan data numerik. Sedangkan

5
instruksi logika beroperasi terhadap bit-bit word sebagai bit, bukannya
sebagai bilangan, sehingga instruksi ini memiliki kemampuan untuk
pengolahan data lain.

 Perpindahan data (data movement)

Berisi instruksi perpindahan data antar register maupun modul I/O. untuk
dapat diolah oleh CPU maka diperlukan instruksi-instruksi yang bertugas
memindahkan data operand yang diperlukan.

 Penyimpanan data (data storage)


Berisi instruksi-instruksi penyimpanan ke memori. Instruksi penyimpanan
sangat penting dalam operasi komputasi, karena data tersebut akan
digunakan untuk operasi berikutnya,minimal untuk ditampilkan pada layar
harus diadakan penyimpanan walaupun sementara.

 Kontrol aliran program (program flow control)

Berisi instruksi pengontrolan operasi dan percabangan. Instruksi ini


berfungsi untuk pengontrolan status dan mengoperasikan percabangan ke
set instruksi lain.

6
A.3. Jenis Instruksi

Sebuah instuksi yang dapat diekspresikan dalam bahasa BASIC atau


FORTRAN. X = X+Y Pernyataan ini menginstruksiakna 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

A.3. Jumlah Alamat


Jumlah register atau alamat yang digunakan dalam operasi CPU tergantung
format masing-masing CPU. Ada format operasi yang menggunakan 3, 2, 1 dan 0
register. Tetapi pada umumnya yang digunakan adalah 2 register dalam satu
operasi. Desain CPU saat ini telah menggunakan 3 alamat dalam satu operasi,
terutama dalam MIPS. (million instruction per second).

Alamat instruksi yang lebih sedikit akan membuat instruksi lebih sederhana
dan pendek, tetapi lebih sulit diimplementasikan fungsi-fungsi yang kita inginkan.
Karena instruksi CPU sederhana maka rancangan CPU juga lebih sederhana.

7
Jumlah bit dan referensi per instruksi lebih sedikit sehingga fetch dan eksekusi lebih
cepat. Tetapi jumlah instruksi per-program biasanya jauh lebih banyak. Pada
jumlah alamat per-instruksi banyak, jumlah bit dan referensi instruksi lebih banyak
sehingga waktu eksekusi lebih lama. Sehingga diperlukan register CPU yang
banyak, namun operasi antar register lebih cepat serta lebih mudah
mengimplementasikan fungsi-fungsi yang kita inginkan. Sehingga jumlah instruksi
per-program jauh lebih sedikit

Untuk lebih jelas perhatikan contoh-contoh instruksi dengan jumlah register


berbeda untuk menyelesaikan persoalan yang sama.

Contoh penggunaan instruksi dengan alamat 1, 2 dan 3 untuk


menyelesaikan operasi hitungan:
Y = (A - B) : (C + D * E)

Contoh instruksi 2 dan 3 alamat

 Instruksi 3 alamat
Spesifikasi :
* Simbolik: a = b + c
* Format alamat: hasil, operand1, operand2
* Digunakan dalam arsitektur MIPS
Instruksi Komentar
SUB Y, A, B Y =A — EI
MF'Y T, D, E T= D >< E
ADD T, T, C T=T + C
DIV Y, Y, T Y= Y + T

 Instruksi 2 alamat
Spesifikasi :
* Simbolik: a = a + b
* Satu alamat diisi operand terlebih dahulu kemudian digunakan untuk
menyimpan hasilnya.
* Tidak memerlukan instruksi yang panjang.

8
* Jumlah instruksi per program akan lebih banyak dari 3 alamat.
* Diperlukan penyimpanan sementara untuk menyimpan hasil.

Instruksi KOmmentar
MOVE Y, A Y = A
SUB Y, B Y = Y - B
MOVE T, D T = D
MPY T, E T = T E
ADD T, C T = T + C
DIV Y, T Y = Y + T.

 Instruksi 1 alamat
Spesifikasi :
* Memerlukan alamat implisit untuk operasi
* Menggunakan register accumulator (AC) dan digunakan pada mesin
lama.
Instruksi Komentar
LOAD D AC =D
MPY E AC = AC E
ADD C AC= AC + C
STOP Y Y = AC
LOAD A AC = A
SUB B AC = AC - B
DN Y AC =AC + Y
STOP Y Y= AC

 Instruksi 0 (Keterangan isi stack)

Spesifikasi :
* Seluruh alamat yang digunakan adalah implisit
* Digunakan pada organisasi memori, terutama operasi stack

Instruksi komentar
PUSH B B
PUSH A B.A

9
SUB A-B (A-B)
PUSH E (A·B).E
PUSH D (A-B).E.D
MUL D*E (A-B).(D*E)
PUSH C [A-B).(D*E).C
ADD C+(D*E) (A-B).(C+D*E)
DIV {A-B)/(C+(D*E)} (A-B)/(C+(D"E}}

A.4. 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.
Rancangan set instruksi merupakan masalah yang sangat komplek yang melibatkan
banyak aspek, diantaranya adalah:
1. Kelengkapan set instruksi
2. Ortogonalitas (sifat independensi instruksi)
3. Kompatibilitas :
a. Source code compatibility
b. Object code Compatibility

Selain ketiga aspek tersebut juga melibatkan hal-hal sebagai berikut:

 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.

10
 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. Tipe – Tipe 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, sebuah peternakan data. Dalam banyak kasus, beberapa
perhitungan harus dilakukan pada referensi operan dalam instruksi
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 ada mesin operator yang
beroperasi langsung di daftar pada sengatan karakter.

1. Number
Semua bahasa mesin termasuk jenis data numerik. Bahkan dalam pengolahan
data non numerik. Ada kebutuhan untuk nomor untuk bertindak
sebagai counter, lebar lapangan, dan sebagainya. Perbedaan penting
antara nomor yang digunakan dalam 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 dapat memahami konsekuensi dari pembulatan,
overflow dan underflow.

11
Tiga jenis data numerik yang umum di komputer:
integer atau titik tetap
floating point
Decimal
Kami memeriksa pertama yang secara rinci dalam bab 9 itu
masih mengatakan beberapa kata tentang angka desimal.
Meskipun semua operasi komputer internal atau biner, pengguna dari
kesepakatan sistem dengan angka desimal. Dengan demikian, ada kebutuhan untuk
konversi dari desimal ke biner pada input dan dari biner ke desimal pada
output. Untuk aplikasi di mana ada banyak I / O dan relatif sedikit.
Perhitungan relatif sederhana 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
untuk 246 adalah 0000001001000110. Kode ini jelas kurang kompak
dari biner langsung diwakili oleh termasuk tanda 4 bit digit baik ditribun kiri atau
kanan untuk tanda minus.
Mesin yang menyediakan instruksi untuk melakukan operasi
arithmatic langsung padaangka desimal paket. Algoritma yang cukup mirip dengan
yang diuraikan dalam bagian 9.3 tapi harus
memperhitungkan operasi membawa desimal.

2. Karakter
Data bentuk umum adalah teks atau string karakter, sedangkan
data tekstual adalah makhluk paling convinient, mereka tidak dapat dalam
bentuk karakter,dengan mudah disimpan atau dikirimkan oleh pengolahan data
dan sistem komunikasi. Sistem ini dirancang untuk data biner. Dengan
demikian, sejumlah kode telah dibuat oleh karakter yang diwakili oleh urutan bit.

12
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 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 bit per
karakter. Delapan bit mungkin digunakan sebagai bit paritas
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). Bahwa untuk 011XXXX pola bit IRA, angka 0
sampai 9 yang diwakili oleh biner setara mereka, 0000 melalui 1001, di paling
kanan 4 bit. Ini adalah kode yang sama seperti desimal dikemas. Ini
memfasilitasi konversi antara IRA 7 bit dan 4 bit representasi desimal dikemas.
Kode lain yang digunakan untuk mengkodekan karakter
adalah Binary Coded Perluasan Kode Desimal Interchange
(EBCDIC). EBCDIC digunakan pada IBM S/390 mesin. Itu
adalah kode bit 8. Seperti IRA, EBCDIC kompatibel dengan desimal dikemas
dalam kasus EBCDIC kode 11110000 11111001 melalui mewakil1 angka 0
sampai 9.

Tiga jenis data karakter yang umum di komputer:

 ASCII (American Standard Code for Information Interchange)


 EBCDIC (Extended Binary Coded Decimal Interchange Code)

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
Tipe dituliskan sebagai integer atau int
Jangkauan nilai bergantung pada implementasi perangkat keras komputer,
misalnya dari -11 s/d +12; untuk algoritma tidak kita batasi.
Operasi aritmetik: tamabah+, kurang-, kali*, bagi/, sisa hasil bagi%
Operasi pembanding:lebih kecil=, sama=, tidak sama>< .

b. Bilangan biasa ( real )


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.
Tipe dituliskan sebagai : real
Jangkauan nilai : bergantung pada implementasi perangkat keras komputer,
misalnya dari -2.9E-39 s/d +1.7E+38, untuk algoritma tidak dibatasi.
Operasi aritmatik dan pembandingan juga berlaku bagi bilangan biasa.

c. Bilangan tetap ( const )


Bilangan tetap ( const ) adalah tipe bilangan, tidak bernilai bulat maupun
tidak, yang nilainya tidak berubah selama algoritma dilaksanakana.
Tipe dituliskan sebagai const .
Jangkauan nilai meliputi semua bilangan yang mungkin.

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.
Tipe dituliskan sebagai char
Jangkauan nilai meliputi semua karakter dalam kode ASCII, atau yang
tertera pada setiap tombol keyboard.
Operasi pembanding dapat dilakukan dan dievaluasi menurut urutan kode
ASCII, sehingga huruf ’A’ (Hex 41) sebenarnya lebih kecil dari huruf ’a’
(Hex 61).

e. Logik ( logikal )

14
Tipe data logik adalah tipe data yang dipergunakan untuk memberi nilai
pada hasil pembandingan, atau kombinasi pembandingan.
Tipe dituliskan sebagai boolean
Jangkauan nilai ada dua : true dan false

2. Tipe bentukan
a. Array ( larik )
 Array adalah tipe data bentukan, yang merupakan wadah untuk
menampung beberapa nilai data yang sejenis. Kumpulan bilangan bulat
adalah array integer, kumpulan bilangan tidak bulat adalaharray real.
Cara menefinisikan ada 2 macam, yaitu:
 Nilai_ujian : array [ 1..10] of integer, atau
 Int nilai_ujian[10];
Kedua definisi diatas menunjukkan bahwa nilai_ujian adalah kumpulan dari
10 nilai bertipe bilanganbulat.
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.
 Sebagai contoh: nama, alamat, dan judul adalah tipe string.
- Cara mendefinisikannya adalah:
* string nama, alamat; atau
* nama,alamat : string;
c. Record ( rekaman )
 Record adalah tipe data bentukan yang merupakan wadah untuk
menampung elemen data yang tipenya tidak perlu sama dengan tujuan
mewakili satu jenis objek.
 Sebagai contoh, mahasiswa sebagai satu jenis objek memiliki beberapa
elemen data seperti : nomer_stb, nama, umur, dll.
- Cara mendefinisikan record mahasiswa tersebut adalah sebagai berikut:
Type dataMhs : record
< nomer_stb : integer,

15
Nama_mhs : string,
Umur : integer,
>
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.
 Tidak boleh ada spasi diantaranya.
 Jangan menggunakan simbol yang bisa membingungkan seperti titik dua,
titik koma, koma, dan sebagainya.
 Sebaiknya memiliki arti yang sesuai denagn elemen data.
 Sebaiknya tidak terlalu panjang.

C. Tipe – Tipe Operasi

Jumlah opcode berbeda sangat bervariasi dari mesin ke mesin. Namun, jenis umum
yang samaoperasi ditemukan pada mesinsemua. Sebuah kategorisasi berguna dan
khas adalah sebagai berikut.

1. Data transfer
2. Arithmetic
3. Logical
4. Conversion
5. Input output

1. Data transfer
Jenis yang paling mendasar dari instruksi mesin adalah instruksi transfer data
tersebut. Instruksi transfer data harus menentukan beberapa hal. Pertama, lokasi
dari sumber dan operan tujuan harus ditentukan. Setiap lokasi dapat memori,
register, ataubagian atas stack. kedua, panjang data yang akan ditransfer harus
ditunjukkan. ketiga, karena dengan semua instruksi dengan operan, modus
pengalamatan untuk operan masing-masing harus ditentukan.

16
Pilihan instruksi transfer data untuk memasukkan dalam set instruksi
mencontohkan jenis off perdagangan desainer harus membuat. misalnya, lokasi
umum (memori atau pendaftaran) dari operand dapat ditunjukkan baik dalam
spesifikasi opcode atau operan. Tabel 10.5 menunjukkan contoh dari S/390 data
yang paling umum IBM instruksi transfer. dicatat bahwa ada varian untuk
menunjukkan jumlah data yang akan ditransfer (8, 16, 32, atau 64 bit). juga, ada
instruksi yang berbeda untuk mendaftar untuk mendaftar, mendaftar ke memori,
dan memori untuk mendaftar transfer. Sebaliknya, pendekatan VAX agak lebih
mudah bagi programmer, yang memiliki lebih sedikit mnemonik untuk menangani.
Namun, juga agak kurang kompak dibandingkan dengan pendekatan IBM S/390,
karena lokasi (pendaftaran dibandingkan memori) dari operan masing-masing harus
ditentukan secara terpisah dalam instruksi. kita akan kembali ke perbedaan ini
ketika kita membahas format instruksi, dalam bab berikutnya.

Dalam hal tindakan CPU, operasi transfer data mungkin adalah jenis yang
paling sederhana. jika kedua sumber dan tujuan adalah register, maka CPU hanya
menyebabkan data yang akan ditransfer dari satu mendaftar ke yang lain: ini
merupakan operasi internal ke CPU. jika salah satu atau kedua Operand berada
dalam memori, maka CPU harus melakukan beberapa atau semua tindakan berikut:

1. menghitung alamat memori, berdasarkan modus alamat.


2. jika alamatmengacu padamemori virtual,menerjemahkan darivirtual
kealamatmemori yang sebenarnya.
3. menentukan apakahitem yangdibahas adalahdalam cache
4. jika tidak,mengeluarkanperintah kemodul memori

Karakteristik 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 :

17
* 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

2. Arithmetic
Kebanyakan mesin menyediakan operasi aritmatika dasar menambah,
mengurangi, mengalikan, dan membagi. ini yang selalu disediakan untuk
ditandatangani integer (fixed-point) angka. operasi lain yang mungkin mencakup
berbagai tunggal operan instruksi: misalnya,

1. absolut: mengambil nilai absolut dari operan


2. meniadakan: meniadakan operan
3. selisih: tambahkan 1 ke operand
4. pengurangan: kurangi 1 dari operand

18
Gambar Shift and Rotate Operations

eksekusi instruksi aritmatika mungkin melibatkan operasi data transfer ke


posisi operan untuk input ke ALU, dan untuk memberikan output dari ALU. Angka
3,5 menggambarkan gerakan yang terlibat dalam transfer data dan operasi
aritmatika. di samping itu, tentu saja, bagian ALU dari CPU melakukan operasi
yang diinginkan.

Tindakan CPU untuk melakukan operasi arithmetic :

 Transfer data sebelum atau sesudah.


 Melakukan fungsi dalam ALU.
 Menset kode-kode kondisi dan flag.

Operasi set instruksi untuk arithmetic :

 ADD : penjumlahan.
 SUBTRACT : pengurangan.
 MULTIPLY : perkalian.
 DIVIDE : pembagian.
 ABSOLUTE.
 NEGATIVE.
 DECREMENT.
 INCREMENT.
Nomor 5 sampai 8 merupakan instruksi operand tunggal.

19
3. Logical
Mesin paling juga menyediakan berbagai usaha untuk memanipulasi bis
individu dari sebuah kata atau unit dialamatkan lain, sering disebut sebagai "sedikit
memutar-mutar". mereka didasarkan pada operasi Boolean.

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.

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

(R1) AND (R2) = 00000101

Dimana notasi (X) maens isi lokasi X. dengan demikian, DAN operasi dapat
digunakan sebagai masker yang memilih bit tertentu dalam sebuah kata dan nol
keluar bit remaning. sebagai contoh lain, jika dua register berisi.

20
(R1) = 10100101

(R2) = 11111111

Then

(R1) XOR (R2) = 01011010

Dengan satu kata diatur untuk semua 1s. operasi XOR membalikkan semua bit
dalam kata lain. Selain menyediakan berbagai pergeseran dan fungsi rotasi. operasi
paling dasar diilustrasikan pada Gambar 10.5. dengan pergeseran logis, bit-bit dari
sebuah kata yang bergeser kiri atau kanan. pada salah satu ujungnya, sedikit
bergeser keluar hilang. di ujung, 0 yang digeser masuk pergeseran logis berguna
terutama untuk mengisolasi bidang dalam sebuah kata. 0s yang bergeser menjadi
sebuah kata menggantikan informasi yang tidak diinginkan yang digeser dari ujung
lainnya.

Basic logical operations

P Q NOT P P AND Q P OR Q P XOR Q P=Q

0 0 1 0 0 0 1

0 1 1 0 1 1 0

1 0 0 0 1 1 0

1 1 0 1 1 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.

21
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.
Hasil langkah sebelumnya dalam mengirimkan karakter tangan kiri. untuk
mengirim karakter tangan kanan.

1. memuat kata lagi ke register.


2. AND dengan 0000000011111111.
3. melakukan I / O.
Operasi 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

22
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. 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.

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:

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 Operation Result

10100110 Logical right shift (3 bit) 00010100

10100110 Logical left shift (3 bit) 00110000

10100110 Arithmetic right shift (3 bit) 11110100

23
10100110 Arithmetic left ahift (3 bit) 10110000

10100110 Right rotate (3 bit) 11010100

10100110 Left rotate (3 bit) 00110101

Oleh isi dari entri tabel di indeks oleh byte itu. Misalnya, untuk menerjemahkan
dari EBCDIC ke IRA, Pertama kita membuat tabel byte 256 di lokasi penyimpanan,
katakanlah, 1000 – 10 FF heksadesimal. Tabel berisi karakter dari kode IRA
diurutan representasi biner dari kode EBCDIC: yaitu, kode IRA ditempatkan
dimejadilokasi relatif sama dengan nilai biner dari kode EBCDIC dari karakter yang
sama. dengan demikian, lokasi 10F0 melalui 10F9 akan berisi nilai 30 sampai
dengan 39, karena F0 adalah kode EBCDIC untuk digit 0, dan 30 adalah kode untuk
IRA 0 digit, dan seterusnya sampai 9 digit. Sekarang misalkan kita memiliki
EBCDIC untuk digit 1984 mulai dari lokasi 2100 dan kita ingin menerjemahkan ke
IRA. Menganggap hal berikut:

- Lokasi 2100 – 2103 cantain F1F9F8F4


- R1 berisi 2100
- R2 berisi 1000

kemudian, jika kita menjalankan

TRR1,R2,4

lokasi 2100 – 2103 akan berisi 3139 3834

5. Input / output (I/O)


Input/output petunjuk dibahas secara rinci. 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.

24
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

6. Sistem Kontrol

Sistem instruksi kontrol adalah mereka yang dapat dieksekusi hanya


ketika prosesor dalam keadaan istimewa tertentu atau sedangmengeksekusi
program dalam arca istimewa khusus dari memori. biasanya petunjuk ini
dicadangkan untuk penggunaan sistem operasi.
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 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.

25
 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.
Beberapa contoh operasi sistem kontrol adalah sebagai berikut,
istructions sistem kontrol mungkin membacaatau mengubah kontrol
mendaftar kita kontrol diskus
registerdi capters 12 contoh lain adalah instruksi untuk membaca atau
memodifikasi kuncipenyimpanan perlindungan seperti digunakan dalam
S/390 memori sistem contoh lain adalah akses untukmemproses blok
kontrol dalam sistem multiprogramming
Transfer kontroluntuk semua jenis operasi dibahas sejauh instruksi
berikutnya yang akan dilakukanadalah salah satu yang segera mengikuti
instruksi memori saat ini namun fraksi yang signifikan dari instruksi dalam
program apapun miliki sebagai fungsi mereka mengubahurutan instruksi
untuk mengeksekusi instruksi-instruksi yang operasi dilakukan oleh CPU
adalah untuk memperbarui program counter untuk berisi alamat dari
beberapainstruksi dalam memori.
Ada beberapa alasan mengapa transfer-of-control operasi yang
diperlukan. Di antara yang paling penting adalah sebagai berikut:
1. Dalam penggunaan partical komputer, adalah penting untuk dapat
mengeksekusi setiap instruksi lebih dari sekali dan mungkin jutaan instruksi
untuk menerapkan apllication ini akan unthank kable jika setiap instruksi
harus ditulis sepparately jika atable atau daftar item adalah untuk akan
memproses semua data
2. Hampir semua program melibatkan beberapa pengambilan
keputusan kami ingin komputer untuk melakukan satu hal jika satu syarat
memegang dan hal lain jika kondisi lain berlaku. untuk contoh urutan
instruksi komputer akar kuadrat dari angka. Pada awalurutan tanda nomor

26
diuji jika nomor tersebut adalah negatif perhitungan tidak 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 melanggar tugas menjadi potongan kecil yang dapat
bekerja pada satu per satucabang instruksi
Sebuah instruksi cabang, juga disebut instruksi jump memiliki sebagai salah
satuoperand-nya alamat dari instruksi berikutnya yang akan dieksekusi
paling seringinstruksi adalah cabang kondisi instruksi cabang yang dibuat
hanya jika kondisi tertentuterpenuhi. jika tidak, instruksi berikutnya dalam
urutan dijalankan (increment program counter seperti biasa)melewatkan
instruksilain bentuk umum dari transfer-of-control instruksi. instruksi loncat
mencakup alamattersirat. biasanya, loncat menyiratkan bahwa satu instruksi
dilewati: dengan demikian, alamat tersirat sama dengan alamat instruksi
berikutnya ditambah satu instruksi-mengukur tinggi.
Memproduksi Hubungan Instruksi
Mungkin inovasi yang paling penting dalam pengembangan bahasa
pemrogramanadalah prosedur, prosedur adalah mandiri programkomputer
yang incorporatred ke dalam sebuah program besar. Pada setiap titikdalam
program prosedur dapatdipanggil, atau menelepon. prosesor diperintahkan
untuk pergi dan melaksanakanseluruh prosedur dan kembali ke titik dari
mana panggilan berlangsung.
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.

27
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 untuk kata
berukuran data.

Tumpukan sistem umumnya digunakan untuk menyimpan 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)
Setiap prosedur yang memanggil prosedur lain harus menyimpan
alamat pengirim pada stack sistem. Kode kerangka untuk menyimpan
alamat pengirim untuk prosedur adalah :
J: sw $ ra, ($ sp) # menyimpan alamat pengirim
menambahkan $ sp, -4 # pada stack sistem
#
# Tubuh prosedur A
#

28
menambahkan $ sp, 4 # mengembalikan alamat pengirim
lw $ ra, ($ sp) # dari tumpukan sistem
jr $ ra # kembali ke memanggil program
Di dalam prosedur, jumlah mendorong harus sama dengan jumlah
pops untuk memastikan bahwa stack pointer dikembalikan ke posisi semula
setelah setiap urutan panggilan / prosedur pengembalian. Tertandingi
mendorong atau muncul dari tumpukan sistem merusak hubungan prosedur
dan menghasilkan hasil yang tak terduga, seperti instruksi ilegal atau
pelanggaran akses memori.
Cabang Petunjuk
Instruksi cabang digunakan untuk mengimplementasikan JIKA pernyataan
dan loop dalam bahasa assembly.Instruksi cabang tanpasyarat
mengeksekusi dengan menetapkan nilai dari label ke PC.Eksekusiprogram
berlanjut dengan instruksi yang terletak di label.

Unconditional Cabang
Sebuah instruksi cabang bersyarat menguji suatu kondisi. Jika kondisi
benar, PC-resetke 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.
Semua instruksi cabang dapat dibangun menggunakan cabang pada nol.
Instruksi cabang berlebihan disertakan untuk kenyamanan.
contoh:
b berikutnya
setara dengan
beqz 0, berikutnya
beq x, y, sama
dapat ditulis sebagai:

29
sub t, x, y
beqz t, sama
BLT x, y, label
adalah sama dengan:
bgt y, x, label

D. 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.

Program biasanya ditulis dalam bahasa tingkat tinggi, yang memungkinkan


program untuk menggunakan konstanta, variable local dan global, pointer, dan
array. Pada saat mentranslasi program bahasa tingkat tinggi menjadi bahsa
assembly, compiler harus mampu mengimplimentasi konstruksi ini menggunakan
fasilitas yang disediakan dalam set instruksi computer dimana program akan
dijalankan. cara yang berbeda dalam menentukan lokasi suatu operand ditetapkan
dalam suatu instruksi yang disebut sebagai mode pengalamatan.

Implementasi variable dan konstanta

Variable dan konstanta adalah tipe data yang paling sederhana dan terdapat
dalam hampir setiap program computer. Dalam bahasa assembley, suatu variable
dinyatakan dengan mengalokasikan suatu register atau lokasi memori untuk
menyimpan nilainya. Sehingga nilai tersebut dapat diubah seperlunya
menggunakan instruksi sesuai.

Kita mengakses operand dengan menetapkan nama register atau alamat lokasi
memori tempat operand berada. Definisi yang presisi dari dua mode tersebut
adalah:

30
1. Mode register operand adalah isi register prosesor, nama alamat register
dinyatakan dalam instruksi tersebut.
2. Mode absolute operand adalah lokasi memori, alamat lokasi dinyatakan
secara eksplisit didalam instruksi tersebut. (pada bebrapa bahasa assembly,
mode ini disebut direct).
3. Mode immediate operand dinyatakan secara eksplisit dalam instruksi,
misalnya, instruksi Move 200 immediete, RO.

Indirection dan pointer

Pada mode pengalamatan berikutnya, instruksi tidak menyatakan operand


atau alamatnya secara eksplisit. Sebaliknya, instruksi menyediakan informasi dari
nama alamat memori suatu operand dapat ditetapkan. Kita menyebut alamat ini
sebagai effective address (EA) suatu operand.

Selain kesederhanaannya yang tampak jelas, pengalamatan indirect melalui


memori telah terbukti memiliki keterbatasan pengunaan sebagai mode
pengalamatan, dan jarang di gunakan dalam computer modern, pengalamatan
indirect melalui register digunakan secara luas. Maka pengalamatan indirect
melalui register memungkinkan untuk mengakses variable global dengan terlebih
dahulu me-load alamat operand dalam suatu register.

D.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 :

31
 Kelebihan :

- Field alamat berisi efektif address sebuah operand

 Kelemahan :

- Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil
dibandingkan panjang word.

D.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

32
D.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

D.4. 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

33
 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.

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

34
 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
registerDengan demikian, referensi-referensi ke lokasi stack di dalam memori pada
dasarnya merupakan pengalamatan register tidak langsung

35
BAB IV
PENUTUP
A. Kesimpulan
Metode numerik merupakan teknik untuk menyelesaikan masalah
yang berkaitan dengan pengoprasian aritmatika (hitungan) dan metode
penyelesaian model matematika dengan rumus-rumus aljabar yang sudah
baku atau lazim. Penyelesaian yang digunakan dalam metode numerik
adalah penyelesaian pendekatan, oleh karena itu biasanya timbul galat
(error). Pada penyelesaiannya diusahakan untuk mendapatkan error yang
sekecil mungkin. Metode numerik digunakan untuk mencari penyelesaian
persoalan-persoalan secara lebih singkat yang apabila dikerjakan
menggunakan metode analitik membutuhkan langkah-langkah yang lebih

36
panjang. Dalam menyelesaikan persamaan non-linier kita sering
menemukan fungsi yang rumit, sehingga untuk mencari penyelesaiannya
atau untuk mencari f(x) = 0, kita perlu menggunakan cara pendekatan atau
cara dengan metode numerik. Salah satunya dengan metode Regula Falsi.
Metode Regula Falsi dapat mempermudah kita dalam mencari akar fungsi
non linier, dengan metode ini kita dapat menemukan suatu nilai akar
pendekatan dari sebuah fungsi non-linier yang rumit.
B. Saran
Dalam mempelajari metode numerik kita harus bisa menganalisis
metode mana yang lebih baik atau lebih tepat perhitungannya.
Metode mana yang lebih dipahami dan simple.

DAFTAR PUSTAKA
http://m-d-amrullah.blogspot.com/2014/06/bisection-and-regula-false-
method.html
https://id.scribd.com/doc/36244962/Metode-Newton-Raphson-Bisection-
Biseksi
https://id.wikipedia.org/wiki/Metode_Gauss-Seidel
Bambang Triatmojo, “Metode Numerik” Beta Offset, 199
[1] Chapra, S.C and Canale, R.P. (1991). Metode Numerik Jilid 1. Erlangga.
Jakarta

[2] Hartono, D. E. Juni. (2000). Modul praktikum Komputasi Metode


Numerik. Universitas Gadjah Mada

37
[3] Purcell, E.J and Varberg, D. (2001). Kalkulus Jilid 1. Interaksa. Batam

[4] Sulila, I Nyoman. (1982). Dasar-Dasar Metode Numerik. Bandung

38
1

Anda mungkin juga menyukai