Sabtu, 07 November 2015

Orkom- Instruction Sets:Characteristics and fungsi

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

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

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.
*      byte unsigned: dapat digunakan untuk operasi aritmatika logis atau integer. Hal ini diambil dari memori ke sebuah register umum dengan nol memperluas di sebelah kiri dengan ukuran mendaftar penuh.
*      Unsigned sindiran: sebagai untuk byte unsigned, tetapi untuk 16-bit jumlah
*      Ditandatangani sindiran: digunakan untuk operasi aritmatika; dimuat ke memori dengan tanda memperluas di kiri ke ukuran register penuh (yaitu, bit tanda direplikasi di semua posisi kosong)
*      Unsigned kata: digunakan untuk operasi logis dan sebagai pointer alamat.
*      Sign kata: digunakan untuk operasi aritmatika
*       Unsigned doubleword: digunakan sebagai pointer alamat
*      Byte string: 0-128 byte panjang

         Selain itu, PowerPC mendukung jenis data tunggal dan double-presisi 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.
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