web viewset instruksi: karakteristik dan fungsioleh :rini andini1129040148ptik 02ptik 02prodi ptik...

50
PTIK 02 PRODI PTIK JURUSAN PTE UNM S2 NEGERI 012

Upload: truongtu

Post on 28-Feb-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

PTIK 02

PRODI PTIK JURUSAN PTEUNM

S2 NEGERI 012

DAFTAR ISI

Halaman

HALAMAN JUDUL 1

DAFTAR ISI 2

SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI 4

A. Machine Instruction Characteristics 4

1. Elemen Instruksi 4

2. Instruksi Representasi 5

3. Jenis Instruksi 7

4. Jumlah Alamat 8

5. Rancangan Set Instruksi 8

B. Types of Operand 9

1. Number 10

2. Karakter 11

3. Tipe Data 12

Tipe Dasar 12

Tipe bentukan 13

C. Pentium and PowerPC Data Types 15

1. Pentium Data Types 15

2. PowerPC Data Types 16

D. Types Of Operations 17

1. Data Transfer 17

2. Arithmetic 18

3. Logical 19

4. Conversion 22

5. Input / Output 23

6. Sistem Kontrol 23

E. Pentium and PowerPC Operation Types 28

1. Jenis-jenis OperasiPC 28

2. Instruksi-instruksi berorientasi percabangan 30

2SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

3. Instruksi-instruksi Load/Store 30

F. Assembly Language 31

3SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

BAB 10

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 mesin, dan fungsi dari ALU.

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.

4SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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 :

Memori utama atau virtual: Seperti referensi instruksi berikutnya, alamat

memori utama atau virtual harus diberikan.

CPU register: Dengan pengecualian langka, CPU berisi satu atau lebih

register yang dapat direferensikan oleh instruksi mesin. Jika hanya satu

mendaftar ada, referensi untuk itu mungkin implisit. Jika lebih dari satu

dan instruksi harus berisi jumlah dari register yang diinginkan.

I / O device: Instruksi harus menentukan (dia modul I / O dan perangkat

untuk operasi. Jika memori-mapping I / O digunakan, ini hanyalah alamat

memori utama atau virtual.

2. Instruksi Representasi

Dalam komputer, setiap instruksi diwakili oleh urutan bit. Instruksi ini

dibagi menjadi bidang, sesuai dengan unsur-unsur pokok dari instruksi. Sebuah

contoh sederhana dari format instruksi ditunjukkan pada Gambar 10.2. Sebagai

contoh lain, format instruksi IAS ditunjukkan pada Gambar 2.2. Dengan set

instruksi yang paling, lebih dari satu format yang digunakan. Selama eksekusi

instruksi, instruksi dibaca ke register instruksi (IR) dalam CPU. CPU harus dapat

mengekstrak data dari berbagai bidang instruksi untuk melakukan operasi yang

diperlukan.

Sulit bagi programmer dan pembaca buku teks berurusan dengan

representasi biner dari instruksi mesin. Dengan demikian, telah menjadi praktek

umum untuk menggunakan representasi simbolis dari instruksi mesin. Contoh ini

5SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

digunakan untuk set instruksi IAS, pada Tabel 2.1.

Opcodes diwakili oleh singkatan, yang disebut mnemonik, yang menunjukkan

operasi. Contoh umum termasuk

ADD add

SUB Subtract

MPY Multiply

DIV Divide

LOAD Load data from memory

STOR Store data to memory

Operand juga diwakili secara simbolis. Sebagai contoh, instruksi

ADD R Y

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.

6SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

Simple Instruction Format

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

7SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

Kontrol: Instruksi pemeriksaan dan percabangan

4. Jumlah Alamat

Salah satu cara tradisional dalam menjelaskan arsitektur prosesor adalah

dengan memakai jumlah alamat yang terdapat pada masing-masing instruksi.

Instruksi aritmatika dan logika memerlukan operand yang berjumlah banyak.

Secara virtual, seluruh operasi eritmatika dan logika merupakan uner/unary (satu

operand) atau biner (dua operand). Dengan demikian, memerlukan maksimum

dua alamat untuk acuan operand. Hasil sebuah operasi akan memerlukan alamat

ketiga.

Dengan demikian, instruksi perlu memiliki empat buah acuan alamat: dua

buah operand, sebuah hasil operasi, dan sebuah alamat instruksi berikutnya.

Sebagian besar CPU merupakan variasi satu, dua, atau tiga alamat dengan alamat

instruksi berikutnya merupakan implisit (diperoleh dari pencacah program).

Format tiga alamat tidak umum digunakan, karena instruksi-instruksi tersebut

memerlukan bentuk instruksi yang lebih relatif lebih panjang untuk menampung

acuan-acuan tiga alamat. Sedangkan bentuk dua alamat mengurangi kebuatuahan

ruang akan tetapi menimbulkan kesulitan. Instruksi yang lebih sederhana adalah

instruksi satu alamat. Agar alamat ini dapat berfungsi, alamat perlu diimplisitkan.

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:

8SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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, 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 sebagai unsigned 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.

9SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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.

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,

10SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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.

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

11SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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.

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.

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.

12SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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 )

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];

13SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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,

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.

14SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

Sebaiknya tidak terlalu panjang.

C. Pentium and Power PC Data Types

1. Pentium Data Types

Pentium dapat menangani jenis data 8 (byte), 16 (kata), 32 (doubleword),

dan 64 (quadword) bit panjangnya. Untuk memungkinkan fleksibilitas maksimum

dalam struktur data dan penggunaan memori yang efisien, kata-kata tidak perlu

selaras pada alamat merata habis dibagi 4 dan quadwords tidak perlu selaras pada

alamat merata dibagi 8. Namun, ketika data yang diakses di 32 bus bit, transfer

data berlangsung dalam satuan doublewords, dimulai pada alamat yang habis

dibagi 4. Prosesor ini mengubah permintaan misaglined.

Table Pentium data types

Data type DescriptionGeneral Byte,word (16 bytes),doubleword (32 bits) and quadword

(64 bits) location with arbitrary binary contentsInteger A signed binary value contained in a byte,word or

doubleword, using twos complement representationOrdinal An unsigned integer contained in a byte, word or

doublewordUnpacked binary coded decintal (BCD)

A representation of a BCD digit in the range 0 through 0 with one digit in each byte

Packed BCD Packed byte representation of two BCD digits value in the range 0 to 99

Near pointer 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 segment in a segmented memory

Bit field A conliguous sequence of bits in which the position of each bit is considered as an independent unit. A bit string can begin at any bit position of any byte and can contain up to 232 – 1 bits

Byte string A contiguous sequence of bytes, words or doublewords, containing form zero to 232 – 1 bits

Floating point See figure 10.4

Nilai dalam urutan permintaan untuk transfer bus. Seperti semua dari intel

80 × 86 mesin, Pentium menggunakan gaya sedikit-endian: yang, byte paling

15SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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

16SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

Byte string: 0-128 byte panjang

Selain itu, PowerPC mendukung jenis data tunggal dan double-presisi

floating-point yang didefinisikan dalam IEEE 754.

D. Types of Operation

Jumlah opcode berbeda sangat bervariasi dari mesin ke mesin. Namun, jenis umum

yang sama operasi ditemukan pada mesin semua. 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, atau

bagian 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. Poin terakhir ini dibahas dalam bab 11.

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

17SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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 alamat mengacu pada memori virtual, menerjemahkan dari virtual ke alamat

memori yang sebenarnya.

3. menentukan apakah item yang dibahas adalah dalam cache

4. jika tidak, mengeluarkan perintah ke modul memori

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

18SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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.

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.

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

19SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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

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

1. memuat kata ke register

2. AND dengan nilai 1111111100000000. ini masker keluar karakter di

sebelah kanan.

20SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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

melibatkan operasi data transfer. tabel 10,7 memberi contoh semua shift dan

memutar operasi dibahas pada pembahasan ini.

21SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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:

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

10100110 Arithmetic left ahift (3 bit) 10110000

10100110 Right rotate (3 bit) 11010100

10100110 Left rotate (3 bit) 00110101

oleh isi dari entri tabel diindeks oleh byte itu. misalnya, untuk menerjemahkan dari

EBCDIC ke IRA, pertama kita membuat tabel byte 256 di lokasi penyimpanan,

katakanlah, 1000-10FF heksadesimal. tabel berisi karakter dari kode IRA di urutan

representasi biner dari kode EBCDIC: yaitu, kode IRA ditempatkan di meja di lokasi

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 F1 F9 F8 F4

- R1 berisi 2100

22SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

- R2 berisi 1000

kemudian, jika kita menjalankan

TR R1, R2, 4

lokasi 2100 - 2103 akan berisi 31 39 38 34

5. Input / output (I/O)

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 dieksekusi hanya ketika

prosesor dalam keadaan istimewa tertentu atau sedang

mengeksekusi program dalam arcaistimewa khusus

dari memori. biasanya petunjuk ini dicadangkan untuk penggunaan sistem operasi

Beberapa contoh operasi sistem kontrol adalah sebagai

berikut, istructions sistem kontrol mungkin membaca

atau 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 untuk

memproses blok kontrol dalam sistem multiprogramming

Transfer kontrol untuk 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 op

23SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

erasi 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 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 satu cabang 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 instruksi lain bentuk umum dari transfer-of-

control instruksi. instruksi loncat mencakup alamat

tersirat. biasanya, loncat menyiratkan bahwa satu

instruksi dilewati: dengan demikian, alamat tersirat sama

24SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

dengan alamat instruksi berikutnya ditambah satu instruksi-mengukur

tinggi.

Memproduksi Hubungan Instruksi

Mungkin inovasi yang paling penting dalam

pengembangan bahasa pemrograman

adalah prosedur, prosedur adalah mandiri program

komputer yang incorporatred ke dalam sebuah program besar. Pada setiap titik

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

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.

25SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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

        #

        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 tanpa

26SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

syarat mengeksekusi dengan menetapkan nilai dari label ke PC. Eksekusi

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

sub t, x, y

beqz t, sama

BLT x, y, label

adalah sama dengan:

bgt y, x, label

27SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

E. Pentium

1. Jenis – jenis OperasiPC

PowerPC banyak memiliki jenis operasi , berikut disajikan berbagai jenis

operasi pada PowerPC : 

Instruksi           Uraian

                                                            Berorientasi Pencabangan

b                    Pencabangan tidak bersyarat

bl                   Bercabang kealamat sasaran dan menaruh alamat efektif instruksi

yang berada setelah pencabangan kedalam link register

bc                   Pencabangan bersyarat pada Count Register dan/atau pada bit

dalkam Condition Register.

sc                    System Call untuk membangkitkan layanan sistem operasi

trap                 Memebandingkan dua buah operand dan membangkitkan system

trap handler bila persyaratan tertentu dipenuhi.

 

                                                                        Load/Store

lwzu               Memuatkan word dan nol kesebelah kiri; mengupdate register

sumber.

ld                   Memuatkan dobleword.

lmw               Memuatkan word ganda; memuatkan word berurutan ke regiater

yang berdekatan dari register sasaran melalui General Purpose

Register 31.

lswx              Memuatkan suatu untaian byte kedalam register yang dimulai

dengan register sasaran; empat byte per-register; diambil semua dari

register 31 hingga register 0.

 

                                                                        Arimatika Integer

add                Menjumlahkan isi dari dua buah integer dan menyimpannya dalam

register ketiga

subf               Mengurangkan isi dua buah register dan menyimpannya dalam

register ketiga.

28SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

mullw            Mengalikan isi dua buah register orde rendah 32-bit dan menyimpan

hasil perkaliannya dalam register 64-bit ketiga.

divd               Membagi isi dua buah register 64-bit dan menyimpan kuosiennya

dalam register ketiga.

                                                                        Logika dan Pergeseran

cmp                Membandingkan dua buah operand dan menyetel empat buah bit

kondisi dalam field register kondisi tertentu.

crand             Condition Register AND : dua bit Condition Register di-AND-kan

dan hasilnya disimpan dalam salah satu dari kedua posisi tersebut.

and                Meng-AND-kan isi dua buah register dan menyimpannya dalam

register ketiga

cntlzd            Mencacah jumlah bit 0 berturutan yang berawal pada bit nol dalam

register sumber dan menempatkan hasil perhitungan dalam regiater

tujuan.

rldic               Merotasikan ke kiri register doubleword, meng-AND-kannya

dengan mask, dan menyimpannya dalam register tujuan.

sld                  Menggeser kekiri dalam register sumber dan menyimpannya dalam

register tujuan

                                                                        Titik Mengambang

lfs                  Memuatkan bilangan floating point 32-bit dari memori,

mengubahnya kedalam format 64 bit, dan menyimpannya dalam

register floating point.

fadd               Menjumlahkan dua buah register floating point dan menyimpannya

dalam register ketiga.

fmadd            Mengalikan isi dua buah register, menambahkan isi regiater ketiga,

dan menyimpan hasilnya dalam regiater keempat.

fcmpu            Membandingkan dua buah operand floating point dan menyetel bit-

bit kondisi.

 

29SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

                                                                        Manajemen Cache

dcbf               Membersihkan (flush) blok data cache; melakukan lookup dalam

cache yang terdapat pada alamat sasaran tertentu dan melakukan

operasi pembersihan.

icbi                Menginvalidasikan instruksi blok cache

2. Instruksi - Instruksi berorientasi Percabangan

PowerPC memiliki orientasi pencabangan tidak bersyarat dan pencabangan

bersyarat. Instruksi-instruksi pencabangan bersyarat menguji suatu bit tunggal

dari register kondisi apakah benar, salah, atau tidak peduli dan isi dari counter

register apakah nol, bukan nol, atau tidak peduli. Dengan demikian terdapat

sembilan macam kondisi instruksi pencabangan bersyarat yang terpisah. Apabila

counter register diuji apakah nol atau bukan nol, maka sesudah pengujian register

berkurang 1. Hal ini tentunya memudahkan penyiapan loop iterasi. Instruksi dapat

juga mengindikasikan bahwa alamat dari pencabangan itu ditempatkan dalam link

register, hal ini memungkinkan pengolahan call/return.

3. Instruksi-instruksi Load/Store

Dalam arsitektur PowerPC hanya instruksi load/store yang dapat mengakses

lokasi memori, instruksi logika dan aritmetika hanya dilakukan terhadap register.

Terdapat dua fitur yang membedakan instruksi-instruksi load/store :

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

bilangan-bilangan nol atau dengan bit tanda dari kuantitas yang

dimuatkan.

30SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

6. Bahasa Assembly

CPU dapat memahami dan mengeksekusi instruksi-instruksi mesin.

Instruksi-instruksi 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

(a) Program Biner (b) Program Simbolik

Alamat Isi Label Operasi Operand

101 2201 FORMUL LDA I

102 1202 ADD J

103 1203 ADD K

104 3204 STA N

201 0002 I DATA 2

202 0003 J DATA 3

203 0004 K DATA 4

204 0000 N DATA 0

(c) Program Heksadesimal (d) Program Asembly

31SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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.

32SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI

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

33SET INSTRUKSI : KARAKTERISTIK DAN FUNGSI