Instruction Sets:Characteristics and 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.
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 (diamodul 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 digunakan untuk set instruksi IAS, pada Tabel 2.1.
Opcodes diwakili oleh singkatan, yang disebut mnemonik, yang menunjukkan operasi. Contoh umum termasuk
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.
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
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:
Ø 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
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.
Tiga jenis data numerik yang umum
di komputer:



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.
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.
Setiap data
memiliki tipe data, angka bulat ( integer ), angka biasa ( real ), atau berupa karakter ( char ), dan sebagainya.
1. Tipe dasar







d. Karakter ( character )



e.
Logik
( logikal )


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
|
Description
|
General
|
Byte,word (16 bytes),doubleword (32
bits) and quadword (64 bits) location with arbitrary binary contents
|
Integer
|
A signed binary value contained in a
byte,word or doubleword, using twos complement representation
|
Ordinal
|
An unsigned integer contained in a
byte, word or doubleword
|
Unpacked 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 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.







Selain itu, PowerPC mendukung jenis data tunggal dan
double-presisi floating-point yang didefinisikan dalam IEEE 754.
1. Data
transfer
Jenis
yang palingmendasar dariinstruksimesinadalahinstruksitransfer
datatersebut.instruksitransfer dataharus menentukanbeberapa hal.Pertama,lokasidari sumber danoperantujuanharus ditentukan.Setiap lokasidapat memori, register,ataubagian atasstack.kedua, panjang data
yang akan ditransferharus ditunjukkan. ketiga,karena
dengan semuainstruksidenganoperan,moduspengalamatanuntuk operanmasing-masing
harusditentukan.Poin terakhirinidibahas dalam bab11.
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
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
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
(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.
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.
seperti dengan operasi aritmatika, operasi logis melibatkan aktivitas ALU dan bisa melibatkan operasi data transfer. tabel 10,7 memberi contoh semua shift dan memutar operasi dibahas pada pembahasan ini.
4.
Conversion
Instruksi konversi adalah mereka yang
mengubah format atau beroperasi pada format data. contoh adalah mengkonversi
dari desimal ke biner. contoh dari instruksi editing yang lebih kompleks adalah
instruksi menerjemahkan S/390. instruksi ini dapat digunakan untuk mengkonversi
dari satu 8 bit kode ke yang lain, dan dibutuhkan tiga operand:
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
|
olehisi
darientri tabeldiindeks olehbyteitu.misalnya, untukmenerjemahkan
dariEBCDICkeIRA, pertama
kita membuat tabelbyte256di lokasipenyimpanan, katakanlah, 1000-10FF heksadesimal.tabel
berisikarakterdari kodeIRA diurutanrepresentasibinerdari kodeEBCDIC: yaitu,kodeIRAditempatkan
dimejadilokasi relatifsama dengan nilaibinerdari kodeEBCDICdarikarakter yang
sama. dengan
demikian,lokasi10F0melalui10F9akan berisinilai30 sampai dengan39,karenaF0adalah
kodeEBCDICuntukdigit0, dan 30 adalah kodeuntukIRA0digit, dan seterusnya sampai
9digit.sekarangmisalkan kitamemilikiEBCDICuntuk digit1984mulai darilokasi2100
dankita inginmenerjemahkan keIRA.menganggaphal berikut:
-
Lokasi2100 - 2103cantainF1F9F8F4
-
R1berisi2100
-
R2berisi1000
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.
Tidak ada komentar:
Posting Komentar