Pada
kesempatan kali ini admin akan sedikit menjelaskan mengenai Register dan Jenis
Register pada pemrograman bahasa Assembler. Sebelumnya Admin sudah pernah
menjelaskan tentang jenis bilangan pada bahasa Assembler. Jika ada yang belum
mengetahui kalian dapat mengunjungi link ini Jenis bilangan pada bahasa Assembler?
PENGERTIAN 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.
JENIS-JENIS REGISTER
Register yang digunakan oleh mikroprosesor dibagi menjadi 5
bagian dengan tugasnya yang berbeda-beda pula, yaitu :
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>.
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 16 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.
Baca Juga : Apa itu LSP TIK?
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.
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 masingmasing bagian terdiri atas 8 bit, seperti pada gambar berikut.
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 |
+----+----+
+----+----+ +----+----+ +----+----+
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.
Baca Juga : Apa itu Bahasa Assembly?
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.
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.
- 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.
- 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.
Baca Juga : Apa itu Cybercrime?
- 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.
---------------------------------------------------------------------------------------
Oke,
mungkin penjelasan dari admin cukup sampai disini saja, tidak lupa juga Admin
mengucapkan Terimakasih banyak kepada kalian semua yang telah mengunjungi
website Jutsu Coding, semoga artikel ini dapat bermanfaat bagi kalian semua
yang sedang mencari materi tentang Register dalam pemrograman dengan bahasa
assembler. Selebihnya kami mohon maaf bila ada kesalahan kata atau ejaan yang
kurang tepat.
Terakhir
jangan lupa juga untuk selalu support Jutsu coding dan follow juga Fansfage
Facebook dan Instagram Jutsu Coding untuk mendapatkan informasi terkini seputar
Teknologi Informasi.