Register merupakan jenis memori yang terdapat pada prosesor dan sebagai
memori internal processor yang mempunyai kecepatan 5 sampai 10 kali
dibandingkan memori utama, digunakan untuk menyimpan instruksi-instruksi dan
data yang sedang diproses oleh CPU.
Register tidak dapat dilepaskan dari mikroprosessor, sebab pada mikroprosessor terdapat register yang berfungsi untuk menyimpan sementara hasil dari tahapan operasi aritmatika dan logika pada mikroprosessor. Register dalam bahasa rakitan menggunakan real mode memory yang sesuai dengan mikroprosessor Intel generasi 8088 s/d Pentium.
Register yang terdapat pada mikroprosessor Intel terdiri dari :
1.
General purpose
register (register serbaguna)
2.
Pointer register
(register pointer)
3.
Index register
(register indeks)
4.
Segment register
(register segment)
5.
Flag register
(register status).
Semua register di
atas lebarnya 32 bit, kecuali register segment (CS, DS, ES, SS, FS dan GS)
hanya 16 bit. Register 32 bit dapat digunakan sebagai register 16 bit, kecuali
General Purpose Register dapat dibagi menjadi 8 bit (AL,AH, BL, BH, CL, CH, DL
dan DH) yang berasal dari 16 bit (AX, BX, CX, DX). Register 32 bit diberi kode
di depan register dengan E misalnya: EAX, EBX, ECX dan EDX.
Macam-macam Jenis dan Fungsi Register
1.
General Purpose Register (Register Serbaguna)
a.
Register AX
(Accumulator register)
- berfungsi sebagai
tempat Sementara hasil suatu operasi arithmetika atau logika (AL,
AH, AX dan EAX).
- Memasukkan nomor
layanan interupsi, untuk keperluan pemesanan sebuah layanan interupsi (register
AH).
- Menyimpan bilangan
yang dikalikan (reg AL, AX, EAX) dan setengan bagian terkecil (LSB) dari hasil
perkalian (register DX-AX dan EDX-EAX).
- Menyimpan setengah
bagian terkecil(LSB) sebuah bilangan dibagi (DX-AX dan EDX-EAX) dan hasil bagi
(AL, AX, EAX).
b.
Register BX (Base
Register)
Base register adalah register untuk menyimpan alamat
offset data yang terletak di memori (BL, BH, BX dan EBX).
c.
Register CX (Counter
Register)
Counter register adalah register serbaguna yang
berfungsi sebagai:
-
Pencacah untuk
operasi loop (CX dan ECX)
-
Pencacah untuk
operasi shift dan rotate (CL)
- Pencacah (counter)
untuk operasi string (CX)
d.
Register DX (Data
register)
Data register adalah register serbaguna yang berfungsi
sebagai :
-
Penyimpan hasil
perkalian 16 bit (DX-AX) dan 32 bit (EDX-EAX)
-
Penyimpan hasil
pembagian (DX-AX dan EDX-EAX)
- Penyimpan data
hexadesimal (kode ASCII) di reg DL untuk dicetak di layar monitor.
2.
Pointer Register
Register ini berfungsi untuk menunjukkan alamat sebuah
data di lokasi memori, dipakai saat operasi perpindahan data dari/ke memori,
operasi stack (PUSH/POP) dan penunjukkan alamat suatu instruksi. Berikut adalah
macam-macam pointer register: SP (Stack Pointer) dan ESP, BP (Base Pointer) dan
IP (Instruction Pointer).
3.
Index Register
Sama dengan pointer register, sering digunakan untuk
menunjukkan alamat sebuah data di lokasi memori pada operasi string.
Macam-macam register Index adalah : SI (Source Index), DI (Destination Index).
4.
Segment Register
Segment register membentuk alamat memori untuk data.
Pada operasi real mode suatu segment register akan berbeda dengan segment
register pada operasi protected mode. Yang termasuk ke dalam segment register
antara lain :
-
Code segment à untuk menunjukkan alamat instruksi berikutnya.
-
Data segment à untuk menunjukkan alamat data pada transfer register
-
Extra segment à register tambahan untuk operasi string
- Stack segment à dengan SP untuk menunjukkan stack dan memanggil suatu
prosedur (CALL) dan mengarah ke program utama (RET)
-
FS dan GS register à register tambahan untuk segmen memori yang besar.
5.
Flag Register
Berfungsi untuk menunjukkan status (keadaan) sesaat
dari mikroprosessor. Bit-bit pada flag akan mengalami perubahan, tergantung proses
yang baru saja berlangsung.
Adapun kode bit yaitu sebagai berikut :
C (carry) : 1 = ada carry out, 0 = tdk ada carry out
P (Parity) : 1 = paritas genap, 0 = paritas ganjil
A (auxxiliary carry) : 1 = ada carry, 0 = tdk ada carry
Z (zero) : 1 = hasilnya nol, 0 = hasilnya bukan nol
S (sign) : 1 = hasilnya negatif, 0 = hasilnya positif
T (trap) : bila diset 1 dimungkinkan melakukan debugging
I (interrupt) : 1 = pin INTR enable, 0 = pin INTR disable
D (direction) : 1 = cacahan turun 0=cacahan naik
(Overflow) : menunjukkan adanya kelebihan kapasitas atau tidak
IOPL (input-output privalege level) : untuk protected mode
NT (nested task) : indikasi dari penggabungan dengan operasi lain
RF (resume) : untuk debugging
VF (Virtual mode) : untuk operasi virtual pada protected mode
Tidak ada komentar:
Posting Komentar