Belajar Register Bahasa Assembly pada Komputer

Tuesday, November 22, 2016

Yo! Pada kesempatan kali ini kita akan membahas tentang register bahasa assembly pada komputer. Namun sebelumnya kita akan membahas terlebih dahulu mengenai  jenis jenis register asembly. Berikut jenis jenis register asembly pada komputer.



1. Segmen Register
Terdiri dari register ECS, EDS, EES, ESS. Gunanya untuk menunjukkan alamat dari suatu segmen memori komputer.
  • Register ECS (Extended Code Segment) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif.
  • Register ESS (Extended Stack Segment) menunjukkan letak dari segmen yang digunakan oleh stack. ECS dan ESS sebaiknya tidak sembarang diubah karena akan menyebabkan kekacauan pada program (software) komputer.
  • Register EDS (Extended 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 EES (Extended Extra Segment), sesuai dengan namanya adalah suatu register bonus yang tidak mempunyai suatu tugas khusus. Register EES ini biasanya digunakan untuk menunjukkan suatu alamat di memory, misalkan alamat memory video.
  • EFS null

2. Extended Index Pointer Register
  • ESP (Extended Stack Pointer) - Pointer to data in the segment pointed to by the DS register; source pointer for string operations 
  • EBP (Extended Base Pointer) -  Pointer to data (or destination) in the segment pointed to by the ESI register; destination pointer for string operations
  • ESI (Extended Source Index) - Stack pointer (in the SS segment)
  • EDI (Extended Destination Index) - Pointer to data on the stack (in the SS segment)
Register EIP berpasangan dengan ECS(ECS:EIP) menunjukkan alamat di memory tempat dari instruksi (perintah) selanjutnya yang akan dieksekusi. Register IP juga merupakan register 16 bit. Pada prosesor 80386 digunakan register EIP yang merupakan register 32 bit.
  • CS : Code Segment (used for IP)
  • DS : Data Segment (used for MOV)
  • ES : Destination Segment (used for MOVS, etc.)
  • SS : Stack Segment (used for SP)
  • FS : Doesnt mean anything, reserve. Cadangan.
  • GS : Doesnt mean anything, reserve. Cadangan.
http://download.intel.com/design/processor/manuals/253665.pdf
Pasangan register ESS:ESP digunakan untuk menunjukkan alamat dari stack. Pasangan register ESS:EBP mencatat suatu alamat di memory tempat data.

Ini secara umum digunakan sebagai penunjuk atau pointer terhadap suatu lokasi di memory. Inget variabel pointer;

Register ESI dan register EDI, biasanya digunakan pada operasi string dengan mengakses secara langsung pada alamat di memory yang ditunjukkan oleh kedua register ini.

3. General Purpose Register / Register Umum / Variabel Umum
  • EAX = Extended Auxilary
  • EBX = Extended Base
  • ECX = Extended Code
  • EDX = Extended Data
Yang masing-masing terdiri atas 32 / 64 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 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 |
+----+----+ +----+----+ +----+----+ +----+-----+
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, EDX.
  • EAX — Accumulator for operands and results data
  • EBX — Pointer to data in the DS segment
  • ECX — Counter for string and loop operations
  • EDX — I/O pointer
1 word = 2 byte.
64 bit = 4 word (quad word) = 4 x 2 byte = 8 byte :
0000 0001 0010 0011 0100 0101 0110 0111
32 bit = 2 word (doulbe word) = 2 x 2 = 4 byte :
0000 0001 0010 0011
16 bit = 1 word ( word) = 2 byte :
0000 0001
8 bit = 1 byte
0000
Berarti :
Depannya ada EAX = script 32 bit.
Depannya ada RAX = script 64 bit.

4. Flags Register.
Sesuai dengan namanya Flags (Bendera) register ini menunjukkan kondisi dari suatu keadaan (ya atau tidak). 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 . Jika terjadi OverFlow pada operasi aritmatika, bit ini akan bernilai 1.
  • SF . Jika digunakan bilangan bertanda bit ini akan bernilai 1
  • ZF . Jika hasil operasi menghasilkan nol, bit ini akan bernilai 1.
  • CF . Jika terjadi borrow pada operasi pengurangan atau carry pada penjumlahan, bit ini akan bernilai 
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|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • PF. Digunakan untuk menunjukkan paritas bilangan. Bit ini akan bernilai 1 bila bilangan yang dihasilkan merupakan bilangan genap.
  • DF. Digunakan pada operasi string untuk menunjukkan arah proses.
  • IF. CPU akan mengabaikan interupsi yang terjadi jika bit ini 0.
  • TF. Digunakan terutama untuk Debugging, dengan operasi step by step.
  • AF. Digunakan oleh operasi BCD, seperti pada perintah AAA.
  • NT. Digunakan pada prosesor 80286 dan 80386 untuk menjaga jalannya interupsi yang terjadi secara beruntun.
  • IOPL . 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 2.
Pada prosesor 80286 dan 80386 ke atas terdapat beberapa tambahan pada flags register, yaitu :
  • PE. Digunakan untuk mengaktifkan mode proteksi. flag ini akan bernilai 1 pada mode proteksi dan 0 pada mode real.
  • MP. Digunakan bersama flag TS untuk menangani terjadinya intruksi WAIT.
  • EM. Flag ini digunakan untuk mensimulasikan coprosesor 80287 atau 80387.
  • TS. Flag ini tersedia pada 80286 keatas.
  • ET. Flag ini digunakan untuk menentukan jenis coprosesor 80287 atau 80387.
  • RF. Register ini hanya terdapat pada prosesor 80386 keatas.
  • VF. 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.

Ingat variabel boolean,, ;)
Nanti, kalau sempat. Kita akan bahas program hello world dalam bahasa Assembly.

Search :

  • register bahasa assembly
  • register dalam bahasa assembly
  • pengertian register dalam bahasa assembly
  • register pada bahasa assembly

Artikel Terkait Assembly ,Programming

2 comments: