Dalam kaitannya dengan perkembangan teknologi informasi dan telekomunikasi, tentu tidak terlepas dari adanya perkembangan dan peningkatan dalam hal teknologi komputer. Komputer yang saat ini kita lihat dan mampu kita bawa kemanapun kita pergi, pada awalnya adalah satu kesatuan dari tabung hampa udara dan komponen lain yang sangat besar. Hingga pada akhirnya berevolusi sampai menjadi barang yang dapat kita bawa kemana saja.
Salah satu bagian dari komputer atau perangkat elektronik yang perlu untuk kita kenal adalah register. Register merupakan salah satu komponen yang tidak bisa pisahkan keterkaitannya dengan mikroprosessor. Sebab, mikroprosessor sendiri merupakan bagian yang penting dalam sebuah rangkaian komputer yang di dalamnya terdapat bagian yang lebih penting lagi, yakni register.
Register adalah merupakan memori pada bagian komputer (mikroprosessor) yang berkapasitas kecil namun memiliki kecepatan baca yang sangat tinggi. Register pada mikroprosessor dapat diibaratkan sebagai kaki dan tangan dari mikroprosessor, karena dalam setiap pekerjaan, mikroprosessor selalu mengandalkan dan melibatkan register sebagai perantara dan sebagai komponen yang paling banyak melakukan pekerjaan mikroprosessor. Secara umum, fungsi sebuah register pada mikroprosessor adalah sebagai tempat penyimpanan sementara untuk menyimpan hasil dari operasi aritmatika ataupun operasi logika yang dilakukan oleh mikroprosessor.
Register dalam mikroprosessor terbagi menjadi 5 jenis atau golongan, yaitu:
Daftar isi
General Purpose Register (Scratch Pad Register / Memori Serbaguna)
General purpose register merupakan register yang memiliki kapasitas penyimpanan sebesar 16 bit yang kemudian dibagi lagi menjadi register low dan register high, yang masing-masing bagiannya memiliki kapasitas penyimpanan sebesar 8 bit. Dalam general purpose register, terdapat 4 bagian register lagi, yang memiliki fungsi yang berbeda, yaitu:
Register AX (AH + AL) / Accumulator Register
Register AX adalah register yang berfungsi untuk menyimpan dan membaca data yang berhubungan dengan operasi aritmatika, yang meliputi perkalian, pembagian, penjumlahan dan pengurangan (KABATAKU). Karena setiap general purpose register memiliki register High dan Low, maka untuk Register AX, register Low nya adalah AL dan Highnya adalah AH.
Register BX (BH + BL) / Base Register
Register BX merupakan salah satu dari dua register base addressing mode yang memiliki kemampuan untuk dapat menulis data atau mengambil data secara langsung dari atau ke memori. Secara umum, register BX berfungsi sebagai tempat untuk menyimpan alamat offset data dalam memori.
Register CX (CH + CL) / Counter Register
Register CX merupakan memori yang berfungsi untuk menyimpan jumlah lompatan pada loop yang dilakukan oleh mikroprosessor. Secara umum, terdapat beberapa fungsi dari register CX, yaitu:
- Melakukan operasi pencacahan untuk operasi loop
- Melakukan operasi pencacahan untuk operasi shift dan rotate
- Melakukan operasi pencacahan untuk operasi string
Register DX (DH + DL) / Data Register
Register DX merupakan register yang serbaguna, yang memiliki beberapa fungsi utama yang berguna untuk membantu register AX, diantaranya yaitu membantu register AX dalam melakukan operasi aritmatika, terutama untuk operasi perkalian dan pembagian sebesar 16 atau 32 bit data, kemudian menyimpan data hexadesimal dalam bentuk kode ASCII di register DL yang akan ditampilkan di layar monitor dan juga menyimpan serta menampilkan nomor port pada operasi port.
Segment Register
Segment register merupakan register yang berfungsi untuk membuat alamat memori untuk data yang akan disimpan kedalam register, sehingga mudah dalam pencarian dan pengaksesan data. Pada mode operasi nyata (real mode) segment register akan berada pada posisi operasi protect mode, sehingga data yang akan disimpan, benar-benar terlindungi. Terdapat 4 bagian kecil lagi dalam segment register, yang tiap bagian memiliki fungi yang berbeda pula, yaitu:
- Code Segment (Register CS) yang berfungsi untuk menunjukkan alamat dari instruksi selanjutnya pada mikroprosessor.
- Data Segment (Register DS) yang memiliki fungsi untuk menunjukkan alamat data pada pengiriman / transfer register.
- Stack Segment (Register SS) yang memiliki fungsi pemanggilan (CALL) dan pengarahan ke program utama (RET) pada operasi stack.
- Extra Segment (Register ES) sebagai memori tambahan untuk operasi string pada CX di general purpose register.
Pointer Register
Pointer register merupakan register yang berfungsi sebagai memori penyimpanan offset dari suatu relative address. Pointer register mampu menunjukkan alamat dari sebuah data pada lokasi memori, dan digunakan saat ada perpindahan data dari dan ke memori, operasi stack baik PUSH atau POP dan alamat dari sebuah instruksi pada mikroprosessor. Terdapat 3 jenis pointer register, yaitu:
- Register IP (Instruction Pointer), yang menunjukkan alamat instruksi atau baris perintah dalam program.
- Register SP (Stack Pointer), yang menunjukkan byte terakhir pada operasi stack.
- Register BP (Base Pointer), yang memiliki fungsi yang lebih kurang sama dengan register BX yaitu membaca dan menulis data secara langsung dari atau ke memori.
- Index Register
Index register merupakan register yang berfungsi untuk melakukan operasi (membaca dan menulis) string. Terdapat dua register dalam index register, yaitu Source (lokasi sumber) Index dan Destination (tujuan) Index.
Flag Register
Flag register berfungsi sebagai penanda yang menunjukkan status atau keadaan dari suatu mikroprosessor. Bit-bit data pada flag yang berfungsi sebagai penanda status, akan mengalami perubahan tergantung kepada proses yang sedang berlangsung. Adapun nilai dan kode dari bit pada flag register yaitu :
- C (carry) dengan nilai : 1 berarti ada carry out dan 0 berarti tidak ada carry out
- P (Parity) dengan nilai 1 berarti paritas genap 0 berarti paritas ganjil
- A (auxiliary carry) dengan nilai 1 berarti ada carry dan 0 berarti tidak ada carry
- Z (zero) dengan nilai 1 berarti hasilnya nol dan 0 berarti hasilnya bukan nol
- S (sign) dengan nilai 1 berarti hasilnya negatif dan 0 berarti hasilnya positif
- T (trap) bila di-set 1 dimungkinkan melakukan debugging.
- I (interrupt) dengan nilai 1 berarti pin INTR enable dan 0 berarti pin INTR disable
- D (direction) dengan nilai 1 berarti cacahan turun dan 0 berarti cacahan naik
- O (Overflow) menunjukkan adanya kelebihan kapasitas atau tidak
- IOPL (input-output privilege level) untuk protected mode
- NT (nested task) sebagai tanda indikasi dari penggabungan dengan operasi lain.
- RF (resume) sebagai tanda untuk debugging
- VF (Virtual mode) sebagai tanda untuk operasi virtual pada protected mode
- AC (alignment check) sebagai tanda untuk data word di alamati ke memori