Muhammad Deden 0651 11 285
Apa itu Register ?
Register Dalam
pemrograman dengan bahasa Assembly, mau tidak mau anda harus berhubungan dengan
apa yang dinamakan sebagai Register. Lalu apakah yang dimaksudkan dengan
register itu sebenarnya ?.
Register
merupakan sebagian memori dari mikroprosesor yang dapat diakses dengan
kecepatan yang sangat tinggi. Dalam melakukan pekerjaannya mikroprosesor selalu
menggunakan register-register sebagai perantaranya, jadi register dapat
diibaratkan sebagai kaki dan tangannya mikroprosesor.
Berikut adalah arti huruf dari Register dan Flag pada GnuSIm.8085 :
Berikut adalah arti huruf dari Register dan Flag pada GnuSIm.8085 :
Registers
A : Accumulator BC : DE : HL : Register Pairs PSW : Register Pair PC : Program Counter SP : Stack Pointer Int-Reg : Instruksi – RegisterFlag
S : Sign Z : Zero AC : Auxillary Carry P : Parity C : CarryJENIS-JENIS REGISTER
Register yang
digunakan oleh mikroprosesor dibagi menjadi 5 bagian dengan tugasnya yang
berbeda-beda pula, yaitu :
F
Segmen Register.
Register
yang termasuk dalam kelompok ini terdiri atas register CS,DS,ES dan SS yang
masing-masingnya merupakan register 16 bit. Register-register dalam kelompok
ini secara umum digunakan untuk menunjukkan alamat dari suatu segmen.
Register CS(Code Segment) digunakan untuk
menunjukkan tempat dari segmen yang sedang aktif, sedangkan register SS(Stack Segment) menunjukkan letak
dari segmen yang digunakan oleh stack. Kedua register ini sebaiknya tidak
sembarang diubah karena akan menyebabkan kekacauan pada program anda nantinya.
Register
DS(Data Segment)
biasanya digunakan untuk menunjukkan tempat segmen dimana data-data pada
program disimpan. Umumnya isi dari register ini tidak perlu diubah kecuali pada
program residen.
Register
ES(Extra Segment),
sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu
tugas khusus. Register ES ini biasanya digunakan untuk menunjukkan suatu alamat
di memory, misalkan alamat memory video.
Pada
prosesor 80386 terdapat tambahan register segment 16 bit, yaitu FS<Extra
Segment> dan GS<Extra Segment>.
F
Pointer dan Index Register.
Register
yang termasuk dalam kelompok ini adalah register SP,BP,SI dan DI yang
masing-masing terdiri atas 16 bit. Register- register dalam kelompok ini secara
umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memory.
Register
SP(Stack Pointer) yang berpasangan
dengan register segment SS(SS:SP) digunakan untuk mununjukkan alamat dari
stack, sedangkan register BP(Base
Pointer)yang berpasangan dengan register SS(SS:BP) mencatat suatu alamat di
memory tempat data.
Register
SI(Source Index) dan register DI(Destination Index) biasanya
digunakan pada operasi string dengan mengakses secara langsung pada alamat di
memory yang ditunjukkan oleh kedua register ini. Pada prosesor 80386 terdapat
tambahan register 32 bit, yaitu ESP,EBP,ESI dan EDI.
F
General Purpose Register.
Register
yang termasuk dalam kelompok ini adalah register AX,BX,CX dan DX yang
masing-masing terdiri atas 16 bit. Register- register 16 bit dari kelompok ini
mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana
masing-masing bagian terdiri atas 8 bit, seperti pada gambar 4.1. Akhiran H menunjukkan High sedangkan akhiran L menunjukkan Low.
+ A X + + B X + + C X + + D X +
+-+--+--+-+
+-+--+--+-+ +-+--+--+-+ +-+--+--+-+
| AH | AL |
| BH | BL | | CH |
CL | |
DH | DL |
+---- +---- +
+---- +---- + +-----+----+ +-----+-----+
Gambar General purpose Register
Secara
umum register-register dalam kelompok ini dapat digunakan untuk berbagai
keperluan, walaupun demikian ada pula penggunaan khusus dari masing-masing
register ini yaitu :
Register AX,
secara khusus digunakan pada operasi aritmatika terutama dalam operasi
pembagian dan pengurangan.
Register BX,
biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen.
Register
CX,
digunakan secara khusus pada operasi looping dimana register ini menentukan
berapa banyaknya looping yang akan terjadi.
Register DX,
digunakan untuk menampung sisa hasil pembagian 16 bit. Pada prosesor 80386
terdapat tambahan register 32 bit, yaitu EAX,EBX,ECX dan EDX.
F
Index Pointer Register
Register
IP berpasangan dengan CS(CS:IP) menunjukkan alamat dimemory tempat dari
intruksi(perintah) selanjutnya yang akan dieksekusi. Register IP juga merupakan
register 16 bit. Pada prosesor 80386 digunakan register EIP yang merupakan
register 32 bit.
F
Flags Register.
Sesuai
dengan namanya Flags(Bendera) register ini menunjukkan kondisi dari suatu
keadaan< ya atau tidak >. Karena setiap keadaan dapat digunakan 1 bit
saja, maka sesuai dengan jumlah bitnya, Flags register ini mampu memcatat
sampai 16 keadaan. Adapun flag yang terdapat pada mikroprosesor 8088 keatas
adalah :
ð OF <OverFlow Flag>
Jika terjadi OverFlow pada operasi aritmatika, bit
ini akan bernilai 1.
ð SF <Sign Flag>
Jika digunakan
bilangan bertanda bit ini akan bernilai 1
ð ZF <Zero Flag>
Jika hasil operasi menghasilkan nol, bit ini akan
bernilai 1.
ð CF <Carry Flag>
Jika terjadi borrow pada operasi pengurangan atau
carry pada penjumlahan, bit ini akan bernilai 1.
0F
0E 0D 0C
0B 0A 09
08 07 06 05
04 03 02
01 00
+-----+-----+------+------+----+-----+-----+-----+----+----+----+----+----+----+----+----+
| | NT | IOPL |OF | DF | IF
| TF | SF | ZF| | AF|
| PF | |CF |
+-----+-----+------+------+----+-----+-----+-----+-----+---+----+----+----+----+----+----+
Gambar Susunan Flags Register 8088
ð
PF
<Parity Flag>.
Digunakan
untuk menunjukkan paritas bilangan. Bit ini akan bernilai 1 bila bilangan yang
dihasilkan merupakan bilangan genap.
ð
DF
<Direction Flag>
Digunakan pada operasi string untuk menunjukkan arah
proses.
ð IF <Interrupt Enable Flag>
CPU akan mengabaikan interupsi yang terjadi jika bit ini
0.
ð TF <Trap Flag>
Digunakan terutama untuk Debugging, dengan operasi step
by step.
ð AF <Auxiliary Flag>
Digunakan oleh
operasi BCD, seperti pada perintah AAA.
ð NT <Nested Task>
Digunakan pada prosesor 80286 dan
80386 untuk menjaga jalannya interupsi yang terjadi secara beruntun.
ð IOPL <I/O Protection level>
Flag ini
terdiri atas 2 bit dan digunakan pada prosesor 80286 dan 80386 untuk mode
proteksi.
Adapun
susunan dari masing-masing flag didalam flags register dapat anda lihat pada
gambar diatas. Pada prosesor 80286 dan 80386 keatas terdapat beberapa tambahan
pada flags register, yaitu :
ü PE <Protection Enable>
Digunakan untuk mengaktifkan mode proteksi. flag ini
akan bernilai 1 pada mode proteksi dan 0 pada mode real.
ü MP <Monitor Coprosesor>
Digunakan bersama flag TS untuk menangani terjadinya
intruksi WAIT.
ü EM <Emulate Coprosesor>
Flag ini digunakan untuk mensimulasikan coprosesor
80287 atau 80387.
ü TS <Task Switched>
Flag ini tersedia pada 80286 keatas.
ü ET <Extension Type>
Flag ini digunakan untuk menentukan jenis coprosesor
80287 atau 80387.
ü RF <Resume Flag>
Register ini hanya terdapat pada prosesor 80386
keatas.
ü VF <Virtual 8086 Mode>
Bila flag ini bernilai 1 pada saat
mode proteksi, mikroprosesor akan memungkinkan dijalankannya aplikasi mode real
pada mode proteksi. Register ini hanya terdapat pada 80386 keatas.
Tidak ada komentar:
Posting Komentar