NPM : 0651 11 381
Kelas : M
Fungsi Register dan Flag Pada Sistem Mikroprosesor
Register
Mikroprosesor
Register
merupakan sebagian memori dari mikroprosesor yang dapat diakses dengan
kecepatan yang sangat tinggi. Dalam melakukan pekerjaannya Mikroprosesor selalu
menggunakan register-register sebagai perantaranya.
Register
yang digunakan oleh Mikroprosesor dibagi menjadi beberapa bagian dengan
tugasnya yang berbeda-beda.
JENIS-JENIS REGISTER
Register
yang digunakan oleh mikroprosesor dibagi menjadi 5 bagian dengan tugasnya yang
berbeda-beda pula, yaitu :
1. 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>.
2. 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.
3. General
Purpose Register
General
Purpose Register adalah register-register yang dipakai untuk keperluan-keperluan
umum dalam pemrograman Assembly. Register ini dapat diamati sebagai register 32
– bit, 16 – bit ataupun 8 – bit. Berikut ini adalah register-register General
Purpose tersebut beserta fungsi2 khususnya.
1.Accumulator
Register
- a.Tempat menyimpan sementara hasil suatu operasi aritmatika atau logika (Register AX, AH, AL, EAX)
- b.Tempat memasukan nomor layanan interupsi, untuk keperluan pemesanan sebuah layanan interupsi (register AH)
- c.Tempat menyimpan bilangan yang dikalikan (Register AL, AX, EAX) dan setengah bagian terkecil dari suatu hasil perkalian (register DX-AX dan EDX-EAX)
- d.Tempat menyimpan setengah bagian terkecil sebuah bilangan yang akan dibagi (Register DX-AX dan EDX-EAX) dan hasil bagi suatu pembagian (Register AL, AX dan EAX)
2.
Base Register
Base
Register adalah register serbaguna yang berfungsi sebagai tempat menyimpan
alamat offset data yang terletak di memori (Register BL, BH, BX, EBX)
3. Counter
Register
Register
serbaguna yang berfungsi sebagai :
- a.Pencacah (Counter) untuk operasi looping (Register CX dan ECX)
- b.Pencacah untuk operasi shift dan rotate
- c.Pencacah untuk operasi string (CX)
4.
Data Register
Register
serbaguna yan berfungsi sebagai :
a.Tempat
menyimpan setengah bagian terbesar hasil suatu perkalian bilangan 16 – bit
(Register DX-AX) dan 32 – bit (Register EDX-EAX)
b.Tempat
menyimpan setengah bagian terbesar suatu bilangan yang akan dikenai operasi
pembagian (Register DX-AX dan EDX-EAX), serta sisa suatu pembagian (Register DX
dan EDX)
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.
5. 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.
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