Anda di halaman 1dari 5

Bahasa Rakitan By Okti Yudhanti Nur K

REGISTER
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. !,D!,"! dan !!

Register yang termasuk dalam kelompok ini terdiri atas register

yang masing-masingnya merupakan register #$ 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 akti%, sedangkan register SS&!tack !egment' menunjukkan letak dari segmen yang digunakan oleh stack. (edua 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. )mumnya 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 "! ini biasanya digunakan untuk menunjukkan suatu alamat di memory, misalkan alamat memory *ideo.
1

Bahasa Rakitan By Okti Yudhanti Nur K

+ada prosesor ,-.,$ terdapat tambahan register segment #$ bit, yaitu FS<Extra Segment dan GS<Extra Segment .

Pointer dan Index Register.

Register yang termasuk dalam kelompok ini adalah register !+,/+,!0 dan D0 yang masing-masing terdiri atas #$ bit. Register- register dalam kelompok ini secara umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memory. Register SP&!tack +ointer' yang berpasangan dengan register segment !!&!!:!+' digunakan untuk mununjukkan alamat dari stack, sedangkan register !P&/ase +ointer'yang berpasangan dengan register !!&!!:/+' mencatat suatu alamat di memory tempat data. Register SI&!ource 0nde1' dan register DI&Destination 0nde1' biasanya digunakan pada operasi string dengan mengakses secara langsung pada alamat di memory yang ditunjukkan oleh kedua register ini. +ada prosesor ,-.,$ terdapat tambahan register .2 bit, yaitu ESP,EBP,ESI dan EDI.

Genera" P#r$ose Register.

Register yang termasuk dalam kelompok ini adalah register A3,/3, 3 dan D3 yang masing-masing terdiri atas #$ bit. Register- register #$ bit dari kelompok ini mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masingmasing bagian terdiri atas , bit, seperti pada gambar 4.#. Akhiran % menunjukkan 5igh sedangkan akhiran & menunjukkan Lo6.

7A37 7-7--7--7-7 8 A5 8 AL 7---- 7----

7/37 7-7--7--7-7 7-7--7--7-7 8 8 /5 8 /L 8 7 7---- 7---- 7

7 37 7-7--7--7-7 8 5 8 L 7-----7----7

7D37 8 8 D5 8 DL 7-----7-----7 8

Gam'ar Genera" $#r$ose Register

Bahasa Rakitan By Okti Yudhanti Nur K

!ecara umum register-register dalam kelompok ini dapat digunakan untuk berbagai keperluan, 6alaupun demikian ada pula penggunaan khusus dari masing-masing register ini yaitu : Register A(, secara khusus digunakan pada operasi aritmatika terutama dalam operasi pembagian dan pengurangan. Register !(, biasanya digunakan untuk menunjukkan suatu alamat o%%set dari suatu segmen. Register C(, digunakan secara khusus pada operasi looping dimana register ini menentukan berapa banyaknya looping yang akan terjadi. Register D(, digunakan untuk menampung sisa hasil pembagian #$ bit. +ada prosesor ,-.,$ terdapat tambahan register .2 bit, yaitu "A3,"/3," 3 dan "D3.

Index Pointer Register !& !:0+' menunjukkan alamat dimemory

Register 0+ berpasangan dengan

tempat dari intruksi&perintah' selanjutnya yang akan dieksekusi. Register 0+ juga merupakan register #$ bit. +ada prosesor ,-.,$ digunakan register "0+ yang merupakan register .2 bit.

F"ags Register.

!esuai dengan namanya 9lags&/endera' register ini menunjukkan kondisi dari suatu keadaan: ya atau tidak ;. (arena setiap keadaan dapat digunakan # bit saja, maka sesuai dengan jumlah bitnya, 9lags register ini mampu memcatat sampai #$ keadaan. Adapun %lag yang terdapat pada mikroprosesor ,-,, keatas adalah :

OF <OverFlow Flag> <ika terjadi =*er9lo6 pada operasi aritmatika, bit ini akan bernilai #. SF <Sign Flag> <ika digunakan bilangan bertanda bit ini akan bernilai # ZF <Zero Flag>
3

Bahasa Rakitan By Okti Yudhanti Nur K

<ika hasil operasi menghasilkan nol, bit ini akan bernilai #.

CF <Carry Flag> <ika terjadi borro6 pada operasi pengurangan atau carry pada penjumlahan, bit ini akan bernilai #.

-9 -" -D -/ -A -> -, -? -$ -5 -4 -. -2 -# -7-----7-----7------7------7----7-----7-----7-----7----7----7----7----7----7----7----7----7 8 8 @A 8 0=+L 8=9 8 D9 8 09 8 A9 8 !9 8 B98 8 A98 8 +9 8 8 98 7-----7-----7------7------7----7-----7-----7-----7-----7---7----7----7----7----7----7----7 Gam'ar S#s#nan F"ags Register )*))

PF <Parity Flag>.

Digunakan untuk menunjukkan paritas bilangan. /it ini akan bernilai # bila bilangan yang dihasilkan merupakan bilangan genap.

DF <Direction Flag> Digunakan pada operasi string untuk menunjukkan arah proses. IF <Interrupt Enable Flag> +) akan mengabaikan interupsi yang terjadi jika bit ini -. TF <Trap Flag> Digunakan terutama untuk Debugging, dengan operasi step by step. AF <Auxiliary Flag> Digunakan oleh operasi / D, seperti pada perintah AAA. T < e!te" Ta!#> Digunakan pada prosesor ,-2,$ dan ,-.,$ untuk menjaga jalannya interupsi yang terjadi secara beruntun.

IOP$ <I%O Protection level> 9lag ini terdiri atas 2 bit dan digunakan pada prosesor ,-2,$ dan ,-.,$ untuk mode proteksi.

Bahasa Rakitan By Okti Yudhanti Nur K

Adapun susunan dari masing-masing %lag didalam %lags register dapat anda lihat pada gambar diatas. +ada prosesor ,-2,$ dan ,-.,$ keatas terdapat beberapa tambahan pada %lags register, yaitu :

PE <Protection Enable> Digunakan untuk mengakti%kan mode proteksi. %lag ini akan bernilai # pada mode proteksi dan - pada mode real.

&P <&onitor Copro!e!or> Digunakan bersama %lag A! untuk menangani terjadinya intruksi CA0A. E& <E'ulate Copro!e!or> 9lag ini digunakan untuk mensimulasikan coprosesor ,-2,? atau ,-.,?. TS <Ta!# Switc(e"> 9lag ini tersedia pada ,-2,$ keatas. ET <Exten!ion Type> 9lag ini digunakan untuk menentukan jenis coprosesor ,-2,? atau ,-.,?. )F <)e!u'e Flag> Register ini hanya terdapat pada prosesor ,-.,$ keatas. *F <*irtual +,+- &o"e> /ila %lag ini bernilai # pada saat mode proteksi, mikroprosesor akan memungkinkan dijalankannya aplikasi mode real pada mode proteksi. Register ini hanya terdapat pada ,-.,$ keatas.

Anda mungkin juga menyukai