Rabu, 10 April 2013

Arsitektur dan Organisasi Komputer


I. IAS REGISTER
Komputer IAS pada tahun 1946 didesain oleh Von Neumann bersama koleganya dengan konsep pemrograman yang kemudian disebut dengan IAS Computer (Computer of Institute for Advanced Studies) karena dikembangkan di Computer of Institute for Advanced Studies.
Secara umum, struktur dari komputer IAS adalah sebagai berikut:
1. Memori utama, untuk menyimpan data dan intruksi.
2. Arithmetic Logic Unit (ALU), untuk mengolah data binner
3. Control Unit, untuk melakukan interpretasi instruksi - instruksi di dalam memori sehingga adanya eksekusi instruksi tersebut
4. I/0, untuk berinteraksi dengan lingkungan luar
Gambar 1. Struktur Umum Komputer IAS
Secara detail Komputer IAS memiliki 1000 lokasi penyimpanan x 40 bit words, dengan rincian:
• Binary number
• 2 x 20 bit instructions
Dengan format memori sebagai berikut :
Gambar 2. Format Memori Struktur Komputer IAS
Gambar 3. Struktur Detail Komputer IAS

II. Fungsi dan Komponen Utama CPU
CPU, singkatan dari Central Processing Unit adalah perangkat keras komputer yang berfungsi untuk menerima dan melaksanakan perintah dan data dari perangkat lunak. Prosesor sering digunakan untuk menyebut CPU pada umumnya. Adapun mikroprosesor adalah CPU yang diproduksi dalam sirkuit terpadu, seringkali dalam sebuah paket sirkuit terpadu-tunggal. Sejak pertengahan tahun 1970-an, mikroprosesor sirkuit terpadu-tunggal ini telah umum digunakan dan menjadi aspek penting dalam penerapan CPU.
Pin mikroprosesor Intel 80486DX2.
Komponen CPU terbagi menjadi beberapa macam, yaitu sebagai berikut:
Unit kontrol (Control Unit)
Unit kontrol ini adalah bagian dari prosesor yang mampu mengatur jalannya program. Komponen ini terdapat dalam semua CPU. CPU bertugas mengontrol komputer sehingga terjadi sinkronisasi kerja antar komponen dalam menjalankan fungsi-fungsi operasinya. termasuk dalam tanggung jawab unit kontrol adalah mengambil intruksi-intruksi dari memori utama dan menentukan jenis instruksi tersebut. Bila ada instruksi untuk perhitungan aritmatika atau perbandingan logika, maka unit kendali akan mengirim instruksi tersebut ke ALU (Aritmathic Logic Unit). Hasil dari pengolahan data dibawa oleh unit kendali ke memori utama lagi untuk disimpan, dan pada saatnya akan disajikan ke alat output. Dengan demikian tugas dari unit kendali ini adalah:

• Mengatur dan mengendalikan alat-alat input dan output.
• Mengambil instruksi-instruksi dari memori utama.
• Mengambil data dari memori utama (jika diperlukan) untuk diproses.
• Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika.
• Mengawasi kerja dari ALU.
• Menyimpan hasil proses ke memori utama.

Register
Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan/atau instruksi yang sedang diproses. Memori ini bersifat sementara, biasanya di gunakan untuk menyimpan data saat di olah ataupun data untuk pengolahan selanjutnya. jika dianalogikan, register ini dapat diibaratkan sebagai ingatan di otak bila kita melakukan pengolahan data secara manual, sehingga otak dapat diibaratkan sebagai CPU, yang berisi ingatan-ingatan, satuan kendali yang mengatur seluruh kegiatan tubuh dan mempunyai tempat untuk melakukan perhitungan dan perbandingan logika.

ALU
ALU merupakan bagian dari CPU yang bertugas untuk melakukan operasi aritmetika dan operasi logika berdasar instruksi yang ditentukan. ALU sering di sebut mesin bahasa karena bagian ini ALU terdiri dari dua bagian, yaitu unit aritmatika dan unit logika boolean yang masing-masing memiliki spesifikasi tugas tersendiri. Tugas utama dari ALU adalah melakukan semua perhitungan aritmatika (matematika) yang terjadi sesuai dengan instruksi program. ALU melakukan semua operasi aritmatika dengan dasar penjumlahan sehingga sirkuit elektronik yang digunakan disebut adder.

Tugas lain dari ALU adalah melakukan keputusan dari suatu operasi logika sesuai dengan instruksi program. Operasi logika meliputi perbandingan dua operand dengan menggunakan operator logika tertentu, yaitu sama dengan (=), tidak sama dengan (¹ ), kurang dari (<), kurang atau sama dengan (£ ), lebih besar dari (>), dan lebih besar atau sama dengan (³ ).

* CPU Interconnections adalah sistem koneksi dan bus yang menghubungkan komponen internal CPU, yaitu ALU, unit kontrol dan register-register dan juga dengan bus-bus eksternal CPU yang menghubungkan dengan sistem lainnya, seperti memori utama, piranti masukan /keluaran.

Fungsi CPU

CPU berfungsi seperti kalkulator, hanya saja CPU jauh lebih kuat daya pemrosesannya. Fungsi utama dari CPU adalah melakukan operasi aritmatika dan logika terhadap data yang diambil dari memori atau dari informasi yang dimasukkan melalui beberapa perangkat keras, seperti papan ketik, pemindai, tuas kontrol, maupun tetikus. CPU dikontrol menggunakan sekumpulan instruksi perangkat lunak komputer. Perangkat lunak tersebut dapat dijalankan oleh CPU dengan membacanya dari media penyimpan, seperti cakram keras, disket, cakram padat, maupun pita perekam. Instruksi-instruksi tersebut kemudian disimpan terlebih dahulu pada memori fisik (RAM), yang mana setiap instruksi akan diberi alamat unik yang disebut alamat memori. Selanjutnya, CPU dapat mengakses data-data pada RAM dengan menentukan alamat data yang dikehendaki.

Saat sebuah program dieksekusi, data mengalir dari RAM ke sebuah unit yang disebut dengan bus, yang menghubungkan antara CPU dengan RAM. Data kemudian didekode dengan menggunakan unit proses yang disebut sebagai pendekoder instruksi yang sanggup menerjemahkan instruksi. Data kemudian berjalan ke unit aritmatika dan logika (ALU) yang melakukan kalkulasi dan perbandingan. Data bisa jadi disimpan sementara oleh ALU dalam sebuah lokasi memori yang disebut dengan register supaya dapat diambil kembali dengan cepat untuk diolah. ALU dapat melakukan operasi-operasi tertentu, meliputi penjumlahan, perkalian, pengurangan, pengujian kondisi terhadap data dalam register, hingga mengirimkan hasil pemrosesannya kembali ke memori fisik, media penyimpan, atau register apabila akan mengolah hasil pemrosesan lagi. Selama proses ini terjadi, sebuah unit dalam CPU yang disebut dengan penghitung program akan memantau instruksi yang sukses dijalankan supaya instruksi tersebut dapat dieksekusi dengan urutan yang benar dan sesuai.
1 . Motherboard :
Tempat kita menancapkan atau memasangkan komponen-komponen komputer lainnya seperti processor, video card, sound card, hard disk, dan lain sebagainya. Motherboard berfungsi untuk menghubungkan setiap komponen-komponen komputer tersebut agar bisa saling berkomunikasi satu sama lain. Setiap motherboard memiliki spesifikasi-nya masing-masing, spesifikasi seperti processor apa yang didukungnya dan berapa kapasitas maksimal RAM yang didukung oleh motherboard tersebut.


2 . Prosesor : 
Otak sebuah komputer yang bertugas memproses perintah dan logika yang diberikan oleh operator komputer, banyaknya jenis processor yang ada sebanding dengan software yang berkembang dipasaran kerena dituntut untuk dapat melakukan banyak perkerjaan salam satu waktu terkadang pemilihan processor yang kita gunakan harus tepat, karena jika sampai salah pilih akan berimbas pada lambatnya proses kerja sebuah komputer yang pasti berimbas langusng pada pekerjaan pengguna komputer.


3 . RAM :
Berfungsi menampung data yang telah terproses oleh processor sebelum di alirkan kebagian-bagian yang membutuhkan, banayknya pengembangan yang dilakukan pada bagian ini membuat kita lebih mudah dalam pemilihan ram yang cocok untuk pekerjaan kita, apalagi sekarang hampir semua merk menerapkan sistem garansi lifetime pada ram.4 .Chipsetmengatur komunikasi antara komponen. Chipset dibagi menjadi dua bagian. Chip pertama disebut “Nort Bridge” yang dapat mengatur komunikasi antara AGP, RAM, Processor, dan “South Bridge” pada chipset. Dan bagian chip yang kedua adalah “South Bridge” yang dapat mengatur semua inputan dan output pada komputer, termasuk PCI dan ISA bus. Processor, Memori (RAM), Cache, dan Chipset bekerja bersama untuk mengaktifkan fungsi komputer.


5 . Video card VGA :
Mengolah gambar sebelum ditampilkan ke monitor, banyaknya kebutuhan pengolahan gambar bagi gamers atau designer yang mengharuskan merogoh kantong yang agak dalam, beruntung sekarang bagi pengguna komputer kantor video grafis sudah terintegrasi dalam motherboard sehingga lebih menghemat pengeluaran.


6 . Sound card :
Fungsi kartu suara sebagai prosesor audio untuk komputer Anda. Analog atau sinyal digital yang masuk ke dalam input kartu dan digital diinterpretasikan sebagai algoritma yang pada gilirannya ditafsirkan sebagai bentuk gelombang dan menghasilkan sinyal sonik dalam output dari kartu suara komputer. Kartu suara adalah perangkat yang dipasang berjalan pada sistem komputer Anda, dengan sifat keras diprogram dan driver perangkat terpisah. Kartu suara mengontrol semua audio pada komputer.


7 . Hardisk :
Sebagai penyimpanan data pada komputer, kapasitas yang benar tentu saja berpengaruh terhadap jumlah data yang dapat kita simpan, ditambah lagi buffer yang besar akan membantu kecepatan transfer baik antar hardisk ataupun untuk proses suatu program. Fungsi lain dari hardisk untuk penyimapanan data yang bersifat mobile dengan sedikit penambahan casing pada hardisk laptop.


8 . Optical disk drive :
Fungsi utama untuk pembacaan pada media CD ataupun DVD, memang secara fungsi sekarang kurang diminati karena banyaknya media penyimpanan yang bersifat mobile dan berkapasitas lebih besar daripada CD, DVD ataupun Blueray yang dapat diakses langsung tanpa menggunakan CD atau pun DVD.


9 . Power suplay :
Mengubah jenis daya listrik yang tersedia di stopkontak, 120 volt, 60 Hz, menjadi arus komputer dapat digunakan, +5 dan +12 volt DC saat ini. Biasanya komponen elektronik digital dan sirkuit di komputer, seperti motherboard, kartu adaptor, dan papan disk drive logika, gunakan +5 volt power, dan kipas dan motor disk drive menggunakan daya +12 volt. Untuk komputer untuk berjalan dengan baik, pasokan dari kedua jenis arus harus diberikan setiap saat.


10 . Casing :
Berfungsi sebagai tempat kita meletakkan atau menempelkan motherboard, power supply, optical disc drive, hard disk, dan lain sebagainyaMelindungi berbagai komponen di dalamnya dari debu, panas, air, atau kotoran lainnya pada saat bekerja Casing juga menjadi penting karena hampir semua periferal macam motherboard, CD-ROM drive, harddisk, dan floppy drive menggunakan casing ini sebagai tempat dudukannya alias tempat bekerjanya sehari-hari.

 [Cara Kerja CPU Pada Komputer] Bagaimana program dijalankan CPU? Mari kita meneliti cara central processing unit, bekerjasama dengan memori, mengeksekusi program komputer. Kita akan melihat bagaimana hanya satu instruksi dalam program dijalankan.

Pada kenyataannya Cara Kerja CPU pada Sistem Komputer, kebanyakan komputeer saat ini hanya dapat mengeksekusi satu instruksi pada satu waktu, meskipun mereka jalankan dengan sangat cepat. Banyak
komputer pribadi dapat mengeksekusi instruksi dalam waktu kurang dari satu juta detik, sedangkan kecepatan setan dikenal sebagai superkomputer dapat mengeksekusi instruksi dalam waktu kurang dari satu milyar detik.

Sebelum instruksi
Cara Kerja Sistem Komputer dapat dilaksanakan, instruksi-instruksi program dan data harus ditempatkan ke dalam memori dari perangkat input atau perangkat penyimpanan sekunder (proses ini semakin rumit oleh fakta bahwa, sebagaimana kita catat sebelumnya, data yang mungkin akan membuat sementara berhenti di register).
Cara Kerja CPU Pada Komputer sebagai berikut:

1. Mengambil unit kontrol (mendapat) instruksi dari memori.

2. Decode unit kontrol instruksi (memutuskan apa artinya) dan mengarahkan bahwa data yang diperlukan akan dipindahkan dari memori ke aritmatika logic unit. Ini bersama-sama dua langkah pertama disebut waktu instruksi, atau saya-waktu.

3. Aritmetik unit logika mengeksekusi instruksi aritmetika atau logis. Artinya, ALU diberikan kontrol dan melakukan operasi yang sebenarnya pada data.

4. THC aritmatika logic unit menyimpan hasil dari operasi ini di memori atau register. Langkah 3 dan 4 bersama-sama disebut waktu eksekusi, atau E-time.

5. Unit kontrol akhirnya mengarahkan memori untuk melepaskan hasil untuk perangkat keluaran atau perangkat penyimpanan sekunder.

IV. Register
  Register Prosesor
Register prosesor, dalam arsitektur komputer, adalah sejumlah kecil memori komputer yang bekerja dengan kecepatan sangat tinggi yang digunakan untuk melakukan eksekusi terhadap program-program komputer dengan menyediakan akses yang cepat terhadap nilai-nilai yang umum digunakan. Umumnya nilai-nilai yang umum digunakan adalah nilai yang sedang dieksekusi dalam waktu tertentu.
Register prosesor berdiri pada tingkat tertinggi dalam hierarki memori: ini berarti bahwa kecepatannya adalah yang paling cepat; kapasitasnya adalah paling kecil; dan harga tiap bitnya adalah paling tinggi. Register juga digunakan sebagai cara yang paling cepat dalam sistem komputer untuk melakukan manipulasi data. Register umumnya diukur dengan satuan bit yang dapat ditampung olehnya, seperti "register 8-bit", "register 16-bit", "register 32-bit", atau "register 64-bit" dan lain-lain.
Istilah register saat ini dapat merujuk kepada kumpulan register yang dapat diindeks secara langsung untuk melakukan input/output terhadap sebuah instruksi yang didefinisikan oleh set instruksi. untuk istilah ini, digunakanlah kata "Register Arsitektur". Sebagai contoh set instruksi Intel x86 mendefinisikan sekumpulan delapan buah register dengan ukuran 32-bit, tapi CPU yang mengimplementasikan set instruksi x86 dapat mengandung lebih dari delapan register 32-bit.

A.      Jenis Register 
           Register terbagi menjadi beberapa kelas : 
·         Register data, yang digunakan untuk menyimpan angka-angka dalam bilangan bulat (integer).
·         Register alamat, yang digunakan untuk menyimpan alamat-alamat memori dan juga untuk mengakses memori.
·         Register general purpose, yang dapat digunakan untuk menyimpan angka dan alamat secara sekaligus.
·         Register floating-point, yang digunakan untuk menyimpan angka-angka bilangan titik mengambang.
·         Register konstanta (constant register), yang digunakan untuk menyimpan angka-angka tetap yang hanya dapat dibaca (bersifat read-only), semacam phi, null, true, false dan lainnya.
·         Register vektor, yang digunakan untuk menyimpan hasil pemrosesan vektor yang dilakukan oleh prosesor SIMD.
·         Register special purpose yang dapat digunakan untuk menyimpan data internal prosesor, seperti halnya instruction pointer, stack pointer, dan status register.
·         Register yang spesifik terhadap model mesin (machine-specific register), dalam beberapa arsitektur tertentu, digunakan untuk menyimpan data atau pengaturan yang berkaitan dengan prosesor itu sendiri. Karena arti dari setiap register langsung dimasukkan ke dalam desain prosesor tertentu saja, mungkin register jenis ini tidak menjadi standar antara generasi prosesor.
B.    Ukuran register
Register
Prosesor
4-bit
8-bit
16-bit
32-bit
64-bit

C.   Organisasi Register
Sistem Komputer menggunakan hirarki memori.pada tingkatan yang atas,memori lebih cepat,lebih kecil,lebih mahal(per bit).Di dalam CPU,terdapat sekumpulan register yang tingkatan memorinya berada di atas hirarki memori utama dan cache.
           Register CPU memiliki dua fungsi:
·         User-visible Register ini memunginkan pemogram bahasa mesin dan bahasa assembler meminimalkan referensi main memori dengan cara mengoptimasi penggunaan registrasi.









CPU dengan Bus Sistemnya

·         Control and status Register : Register-register ini digunakan oleh unit kontrol untuk mengontrol operasi CPU dan oleh program sistem operasi untuk mengontrol eksekusi program.
\
Sistem Komputer menggunakan hierarki memori. Dimana semakin menuju tingkatan teratas maka memori akan ke suatu wujud dimana lebih cepat, lebih kecil, dan pasti lebih mahal. CPU memiliki sekumpulan register dimana tingkatan memorinya berada di atas hirarki memori utama dan cache.

Register merupakan alat penyimpanan kecil yang mempunyai kecepatan akses cukup tinggi, yang digunakan untuk menyimpan data dan instruksi yang sedang diproses, sementara data dan instruksi lainnya yang menunggu giliran untuk diproses masih disimpan di dalam memori utama. Setiap register dapat menyimpan satu bilangan hingga mencapai jumlah maksimum tertentu tergantung pada ukurannya. Register-register dapat dibaca dan ditulis dengan kecepatan tinggi karena berada pada CPU.

Register (jamak, dalam bahasa Indonesia menjadi register-register atau banyak register) merupakan media penyimpanan internal CPU yang digunakan saat pengolahan data. Registers merupakan media penyimpanan yang bersifat sementara, artinya data hanya akan berada dalam registers saat data tersebut dibutuhkan selama komputer masih hidup, ketika suatu data tidak diperlukan lagi maka ia tidak berhak lagi berada di dalam
registers, dan ketika komputer dimatikan maka semua data yang berada di dalamnya akan hilang.

Berikut fungsi register :

User Visibel Register :

Register CPU yang dapat digunakan oleh pemrogram, dengan menggunakan set intsruksi memungkinkan satu buah register atau lebih untuk dispesifikasian sebagai operand atau alamat operand.
Register CPU yang dapat digunakan oleh pemrogram, dengan menggunakan set intsruksi memungkinkan satu buah register atau lebih untuk dispesifikasian sebagai operand atau alamat operand.

           a.      General Purpose Register
  •  Digunakan untuk mode pengalamatan dan data. 
  • Akumulator ( aritmatika, Shift, Rotate)  
  • Base Register (Rotate,Shift, aritmatika)
  • Counter Register ( Looping) 
  • Data Register (menyimpan alamat I/O device).
           b.      Register Alamat
  •  Digunakan untuk mode pengalamatan
  • Segment Register (Code Segment, Data Segment, Stack Segment, Extra Segment)
  • Register Index (Stack Index, Data Index)
  • Stack Pointer
          c.       Register Data
  •  Digunakan untuk menampung data
          d.      Register Kode Status Kondisi (Flag)
  • Kode yang menggambarkan hasil operasi sebelumnya

      Control dan Status Register :

Register ini digunakan oleh unit control untuk mengontrol operasi cpu dan oleh program system operasi untuk mengontrol eksekusi program

           a.      Program Counter (PC)
  • Berisi alamat instruksi yang akan diambil
           b.      Instruction Register (IR)
  • Berisi alamat instruksi terakhir
           c.       Memory Address Register (MAR)
  • Berisi alamat penyimpanan dalam memori
           d.      Memori Buffer Register (MBR)
  • Berisi data yang dibaca dari memori atau yang diyliskan ke memori





V. Set Intruksi
Set Instruksi didefinisikan sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada).
ISA merupakan sebuah spesifikasi dari kumpulan semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya (native form) dalam sebuah desain prosesor tertentu. Kumpulanopcode tersebut, umumnya disebut sebagai bahasa mesin (machine language) untuk ISA yang bersangkutan. ISA yang populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC Alpha, dan lain-lain.
ISA kadang-kadang digunakan untuk membedakan kumpulan karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set instruksi (mencakup microcode, pipeline, sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama. Sebagai contoh, prosesor Intel Pentium dan prosesor AMD Athlon mengimplementasikan versi yang hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWER tanpa harus menulis ulang bagian-bagian dari dalam sistem operasi atau perangkat lunak yang diasosiasikan dengannya.
Ketika mendesain mikroarsitektur, para desainer menggunakan Register Transfer Language (RTL) untuk mendefinisikan operasi dari setiap instruksi yang terdapat dalam ISA.
Sebuah ISA juga dapat diemulasikan dalam bentuk perangkat lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk melakukan emulasi, hal ini memang menjadikannya lebih lambat jika dibandingkan dengan menjalankan program secara langsung di atas perangkat keras yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat keras dirilis oleh vendor.
Daftar ISA di bawah ini tidak dapat dikatakan komprehensif, mengingat banyaknya arsitektur lama yang tidak digunakan lagi saat ini atau adanya ISA yang baru dibuat oleh para desainer. Satu instruksi mungkin memiliki beberapa bidang, yang mengidentifikasi operasi logis untuk dilakukan, dan bisa juga menyertakan alamat sumber dan tujuan dan nilai-nilai konstan. Ini adalah MIPS "Tambahkan Segera" instruksi yang memungkinkan pemilihan register sumber dan tujuan dan inklusi dari sebuah konstanta kecil. pada arsitektur tradisional, instruksi mencakupopcode menentukan operasi yang akan dilakukan, seperti "isi menambah memori untuk mendaftar", dan nol atau lebih operanpenspesifikasi, yang dapat menentukanregister, memori lokasi, atau data harfiah. Para penspesifikasi operan mungkin memilikimode pengamatan menentukan makna mereka atau mungkin dalam bidang tetap. Dalam [kata sangat panjang instruksi [
(VLIW) arsitektur, yang mencakup banyak microcode arsitektur, opkode simultan dan operan yang ditentukan dalam sebuah instruksi.
Beberapa set instruksi eksotis tidak memiliki bidang opcode (seperti Transportasi Dipicu Arsitektur (TTA) atau mesin Forth maya), hanya operan (s). Lainnya tidak biasa " 0-operan" set instruksi kekurangan dalam suatu operan bidang specifier, seperti beberapa [mesin [tumpukan]] termasuk NOSC / balik / NOSC /.
VI. MODE PENGALAMATAN          
Kumpulan intruksi intel menyediakan cara yang bervariasi untuk menemukan lokasi memori. Cara cara ini disebut mode pengalamatan. Cara ini dapat memudahkan pemrosesan list dan untuk mengacu struktur data yang komplek. Juga, compile bahasa tingkat tinggi memerlukannya untuk membuat intruksi mesin yang lebih sedikit ketika set intruksi CPU menggunakan cara yang baik dalam pengacuan data.
Terdapat lima mode pengalamatan, ditunjukan dalam table mode pengalamatan dibawah. Dalam table, displacement berupa angka atau offset variable. Effective address operand mengacu pada offset (jarak) data dari awal segmen. BX dan BP adalah register basis, dan SI serta DI adalah register index. Setiap contoh berikut mengacu pada isi memori pada alamat efektif.
Mode
Contoh
Keterangan
Direct
Op l
bytelist
[200]
Alamat efektif adalah displacement
Register Indirect
[bx]
[si]
[di]
EA adalah isi basis atau index
Based or Indexed
List [bx]
[si+list]
[bp+4]
List [di]
[bp-2]
EA adalah penjumlahan register basi atau index dengan displacement
Base - indexed
[bx+si]
[bx][di]
[bp-di]
EA adalah penjumlahan register basis dan register index
Base – indexed with displacement
[bx+si+2]
List [bx+si]
List [bx][si]
EA adalah penjumlahan register basis, register index dan displacement

Table Mode Pengalamatan
Ø  Operand register
Operand register mungkin berupa register 8 atau 16 bit. Secara umum,mode pengalaman register adalah paling efisien karena register adalah bagian dari CPU dan tidak memerlukan pengaksesan memori. Beberapa contoh menggunakan instruksi MOV sebagai berikut:                                            
       mov ax,bx
       mov cl,al
      mov si,ax
Ø  Operand Immedite
Operand immediate adalah ekspresi konstan, seperti angka, karakter atau ekspresi aritermetik. Assembler harus menentukan nilai operand immediate pada waktu assembly. Nilainya disisipkan langsung kedalam intruksi mesin. Contoh operand immediate ditunjukan sebagai berikut. Contoh terakhir, (2+3)/5, adalah ekspresi yang dievaluasi pada saat assembly.
Contoh
Ukuran (bit)
10
‘A’
‘AB’
65535
(2+3)/5
8
8
16
16
8

Ø  Operand Direct
Operand Direct mengacu pada isi memori offset variable. Assembler menjaga nilai offset setiap label, membuatnya memungkinkan untuk menghitung alamat efektif operand direct. Pada contoh, isi memori pada lokasi count dipindah ke AL:
            Count db 20
            …
            …
            Mov al, count              ; AL= 20
Ø  Operand Offset
Ketika diperlukan pemindahan offset label kedalam register atau variable, digunakan operator offset. Oleh karena assembler mengetahui offset setiap label sebagai program yang sedang di-assembly maka mudah untuk menggantikan nilai offset ke dalam intruksi. Misalkan, offset variable a word dalam contoh berikut adalah 0200h; intruksi MOV akan memindahkan 200h ke dalam BX langsung:
            aWord dw 1234
            …
            Mov bx, offset a Word
Ø  Operand tidak langsung
Jika offset variable yang ditempatkan dalam register atau variable, untuk variable yang mengandung element tunggal, dia akan mempunyai nilai yang kecil; tetapi untuk daftar item, pointer mungkin akan ditambah untuk menunjuk setiap elemen.
Ø  Based dan Indexed Operand
Operand basis dan indekx pada dasrnya sama; register ditambahkan pada displacement untuk mendapatkan alamat efektif. Register yang dipakai harus SI, DI, BX dan BP. Displacement adalah angka atau label yang offsetnya diketahui pada waktu assembly. Notasi mungkin dalam bentuk yang sama:
Register ditambahkan ke offset:
            Mov dx, array[bx]
            Mov dx, [di+array]
            Mov dx, [array+si]
Register ditambahkan konstan :
            Mov ax, [bp+2]
            Mov dl, [di-2]
            Mov dx, 2[si]
Ø  Base-indexed Operand
Alamat efektif operand dibangun oleh penggabungan register basis dengan register index. Misalkan BX=2002h dan SI=6. Intruksi berikut akan menghitung alamat efektif 208h:
            Mov al, [bx+si]
Teknik ini sering berguna untuk array dua dimensi, dimana BX dapat menunjuk offset baris dan SI offset kolom. Contoh berikut, alamat efektif yang dibangun oleh [bx+si] adalah 0157:
CODE :
            Array   db 10, 20, 30, 40, 50
                        Db 60, 70, 80, 90, A0
                        Db B0, C0, D0, E0, F0
                        ….
            Mov bx, offset array   ; menunjuk pada array (0150)
            Add bx, 5                    ; memilih baris kedua
            Mov si, 2                     ; memilih kolom ke tiga
            Mov al, [bx+si]            ;mengambil nilai pada alamat efektif 0157
Ilustrasi
0150
10
20
30
40
50
60
70
80
90

                                                                 [BX]                 [SI]

Ø  Base-indexed dengan displacement
Alamat efektif operand dibangun dengan menggabungkan register basis, register index dan displacement. Contohnya sebagai berikut:
            Mov dx, array [bx] [si]
            Mov ax, [bx+si+array]
            Add dl, [bx+si+3}
            Sub cx, array [bp+si]
Ø  Penjumlahan serangkaian bilangan
Contoh program berikut menunjukan bagaimana bermacam macam mode pengalamatan bisa digunakan ketika mengakses elemen sebuah array. Array berada pada offset 150, dan hasil penjumlahan akan disimpan pada offset 153. Program berikut mungkin di assemble dan dijalankan dalam Debug.
            A 150
            Db 10, 20, 30, 0
            …
            A 100
            Mov bx, 150
            Mov si, 2
            Mov al, [bx]
            Add al, [bx+1]
            Add al, [bx+si]
            Mov [153], al
            Int 20
            t
            .
            .
            D 150, 153

Tidak ada komentar:

Posting Komentar