Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum
Arsitektur Mikroprosesor INTEL 8086 Tinjauan Umum
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 ?.
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.
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.
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.
| AH | AL | | BH | BL | | CH | CL | | DH | DL |
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.
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
+-----+-----+------+------+----+-----+-----+-----+----+----+----+----+----+----+----
+----+
+-----+-----+------+------+----+-----+-----+-----+-----+---+----+----+----+----+----
+----+
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.
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.
Register
a) Accumulator Register
c. tempat menyimpan bilangan yang dikalikan dan setengah bagian terkecil dari
suatu perkalian; dan
d. tempat menyimpan setengah bagian terkecil sebuah bilangan yang akan
dibagi dan hasil bagi suatu pembagian.
b) Base Register
c) Counter Register
d) Data Register
2. Pointer Register
Pointer register ini sebenarnya dapat berfungsi sebagai register serbaguna, akan
tetapi register ini lebih sering digunakan untuk menunjukkan alamat sebuah data
di lokasi memori. Penunjukan alamat ini biasanya dibutuhkan pada saat operasi
perpindahan data dari atau ke memori, operasi stack, dan penunjukan alamat
suatu instruksi yang akan dieksekusi.
Berikut ini adalah register-register yang termasuk dalam kategori pointer
register beserta fungsi-fungsi khususnya.
Berpasangan dengan register SS, ditulis sebagai “SS:SP”, stack pointer register
berfungsi untuk:
Berpasangan dengan register SS, ditulis sebagai “SS:BP”, base pointer register
berfungsi untuk menunjukkan alamat sebuah data di suatu lokasi memori.
Berpasangan dengan register CS, ditulis sebagai “CS:IP”, yang berfungsi untuk
menunjukkan alamat instruksi berikutnya.
3. Index Register
Sama halnya dengan Pointer Register, Index Register ini dapat digunakan
sebagai sebuah register serbaguna, akan tetapi lebih sering digunakan untuk
menunjukkan alamat sebuah data di lokasi memori pada operasi-operasi string.
Source Index Register biasanya digunakan pada operasi string untuk mengakses
alamat suatu data di dalam memori secara langsung.
b) Destination Index (DI)
Fungsi dari Destination Index Register juga sama seperti Source Index Register,
yakni digunakan pada operasi string untuk mengakses alamat suatu data di
dalam memori secara langsung.
4. Segment Register
Terdiri dari 4 register, yaitu code segment, data segment, stack segment, dan
extra segment. Segment adalah bagian dari ruang memori yang berkapasitas 64
kilobyte (65536 byte) dan digunakan secara spesifik untuk menempatkan jenis-
jenis data tertentu. Misalnya code segment digunakan oleh program dan
instruksi-instruksi (code), data segment dialokasikan untuk data-data, stack
segment dipakai untuk menyediakan ruang untuk stack, yang berfungsi untuk
penyimpanan data dan alamat sementara pada saat program utama sedang
mengerjakan program percabangan, dan extra segment sebagaimana halnya data
segment juga dipergunakan sebagai penempatan data-data.
5. FS dan GS Register
Merupakan register segmen tambahan pada 80836-80486 sehingga segmen
memori yang dapat diakses oleh program menjadi lebih besar.
6. Flag Register
13. VF (virtual mode) : memilih operasi virtual mode pada operasi protected
mode.
14. AC (alignment check) : untuk mengecek apakah suatu data word atau
doubleword dialamati ke memori yang bukan data word atau bukan
doubleword.