Rabu, 04 Mei 2011

Macam-Macam Register


1. Segmen Register
Register-register dalam kelompok ini secara umum digunakan untuk menunjukkan alamat dari suatu segmen
  •  CS(Code Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif
  •  SS(Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack.
  •  DS(Data Segment) biasanya digunakan untuk menunjukkan tempat segmen dimana data-data pada program disimpan.
  •  Register ES(Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus.
Pada prosesor 80386 terdapat tambahan register segment 16 bit, yaitu FS<Extra Segment> dan GS<Extra Segment>.
Yang dimaksud dari FS
F segment (FS) = pointer ke data ekstra lebih ( F muncul setelah E )
ES sendiri adalah suatu register bonus yang tidak mempunyai suatu tugas khusus . biasanya digunakan untuk menunjukkan suatu alamat di memori .
Yang dimaksud dari GS
G segment (GS) = pointer ke data tambahan masih lebih ( G manual setelah F )

2. POINTER dan INDEX REGISTER
Secara umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memory.
  •  SP(Stack Pointer) yang berpasangan dengan register segment SS(SS:SP) digunakan untuk mununjukkan alamat dari stack.
  •  BP(Base Pointer)yang berpasangan dengan register SS(SS:BP) mencatat suatu alamat di memory tempat data.
  •  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
ESP  adalah stack pointer register yang digunakan untuk menyimpan alamat dari stack
EBP  adalah base stack pointer register yang digunakan untuk menyimpan alamat dasar stack
ESI   adalah sumber register indeks source atau indeks register yang digunakan untuk string    dan menyalin memory array
EDI   adalah tujuan register indeks destination index register yang digunakan untuk string , menyalin memory array dan pengaturan dan untuk jauh pointer pengalamatan dengan ES 

3. 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
EAX (accumulator register) semua perhitungan utama berlangsung di EAX , sehingga mirip dengan sebuah register di akumulator khusus
EBX (base register) dalam mode 32-bit register dasar itu berfungsi sebagai pointer . sekarang jadi terdapat ruang untuk penyimpan extra
ECX (counter register) register terhitung counter wp universal
EDX (data register) data register adalah eksistensi ke akumulator . hal ini terpenting dan paling berguna untuk menyimpan data yang terhubung dengan perlindungan pada akumulator saat ini .

4. 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
EIP  adalah pointer indeks yang digunakan untuk menyimpan offset intruksi berikutnya , hal    ini hanya dapat dibaca .

5. FLAGS REGISTER


  • NT : Untuk mengindikasikan apakah operasi yang sedang dilakukan digandeng ( nested ) dengan operasi lain pada operasi protected mode.
  • IOPL : Untuk operasi protected mode yang digunakan untuk memilih tingkat keistimewaan piranti masukan – keluaran .
  • Overflow Flags) : Untuk menunjukkan sebuah operasi yang tidak benar yaitu merubah hasil dari pada tanda bilangan .
  • DF (Direction Flags) : Mengontrol arah dari operasi string .
  • IF (Interupt Flags) : jika setting nilai 1 dapat melakukan operasi interupsi dan sebaliknya jika bernilai 0 , maka interupsi tidak dapat dilakukan .
  • TF (Trap Flags) : Di tempatkan pada single step mode untuk keperluan debug .
  • SF (Sign Flags) : Mensef (nilai 1) jika hasilnya adalah negatif dan bernilai 0 jika positif.
  • ZF (Zero Flags) : Mensef (nilai 1) jika hasilnya adalah negatif dan bernilai 0 jika positif.
  • AF (Auxilary Flags) : Digunakan oleh intruksi pengaturan desimal .
  • PF (Parity Flags) : Mensef (nilai 1) jika hasilnya sebuah angka genap (even parity).
  • CF (Carry Flags) : Dimana sebuah carry out atau borrow jika hasilnya adalah bit tertinggi (nilai 1)

Tidak ada komentar:

Posting Komentar