Mikroprosesor 8086/8088 memiliki 4 register yang masing-masingnya
terdiri dari 16 bit, ditambah 9 register flag. Tiga set yang menyediakan tempat
register adalah General Purpose Register, Pointer dan Index Register, dan
Segment Register. 4 Jenis kelompok register tersebut sebagai berikut:
1. General Purpose Register
2. Pointer dan Index
Register
3. Register Segment
4. Flag Register
1. General Purpose Register
·
Accumulator Register AX
Fungsi: Sebagai
akumulator dan berhubungan dengan jenis-jenis operasi khusus seperti
Aritmetika, In/Out, Shift,Logic, Rotate, dan operasi desimal berkode biner.
·
Base Register BX
Fungsi: Sebagai register
base untuk mereferensi alamat memori. Operasi yang dapat dilakukan adalah
Rotate, Logic, Shift, dan Aritmetika.
·
Counter Register CX
Fungsi: Sebagai pencacah
implisit dengan instruksi tertentu, misalnya terhadap perintah Loop dan operasi
string. Counter naik jika direction flag bernilai 0, dan counter turun jika
direction flag bernilai 1.
·
Data Register DX
Fungsi: Menyimpan alamat
port I/O selama operasi I/O tertentu, baik alamat port 8 bit maupun 16 bit.
Digunakan juga dalam operasi perkalian dan pembagian.
2. Pointer
dan Index Register
·
Register SP (Stack Pointer, 16 bit)
Fungsi: Digunakan untuk operasi stack seperti
menyimpan alamat return saat memanggil subroutine. SP merupakan register yang
secara implisit digunakan oleh perintah PUSH dan POP yaitu menyimpan dan
mengambil kembali dari stack.
·
Register BP (Base Pointer, 16 bit)
Fungsi: Sebagai penunjuk base dalam stack yang
disediakan untuk penyimpanan data. BP juga digunakan si dengan bahasa
pemrograman misalnya Assembler dan C.
·
Register SI dan DI (Source Index dan Destination index, 16 bit)
Fungsi: Menyimpan
nilai-nilai offset dalam segment data memori pada saat bersangkutan.
·
Register IP (Instruction Pointer, 16 bit)
Fungsi: Register yang berpasangan dengan CS
sebagai register utama untuk menunjukkan baris perintah program. Pada saat
program dijalankan, IP akan langsung menunjuk pada awal program. Code Segment
dan Instruction Pointer berfungsi sebagai program counter ditulis dengan format
CS:IP. Secara umum, kode mesin diletakkan di Code Segment, semua data
diletakkan di Data Segment, dan operasi PUSH dan POP dilakukan di Stack
Segment.
3. Register Segment (16
bit)
·
Register CS (Code Segment)
Fungsi: Mencatat segment dari kode program atau
instruksi, register CS berpasangan dengan register IP (Instruction Pointer)
dalam format CS:IP.
·
Register DS (Data Segment)
Fungsi: Menyimpan alamat
dari segment dimana data terletak.
·
Register SS (Stack Segment)
Fungsi: Menyimpan alamat segment memori yang
dipergunakan sebagai stack.
·
Register
ES (Extra Segment)
Fungsi: Menyimpan alamat
segment tambahan, misalnya alamat display, alamat sistem operasi, dan
sebagainya.
4. Register Flag
Mikroprosesor 8086/8088
mempunyai Status Flag 1 bit dan 4 Kontrol Flag yang dikonfigurasikan dalam
register 16 bit. Status Flag terdiri dari:
·
CF (Carry Flag)
Tugas: Dimana sebuah
carry out atau borrow, jika hasilnya adalah bit tertinggi (nilai 1).
·
PF (Parity Flag)
Tugas: Menset (nilai 1), jika instruksi menghasilkan sebuah
angka genap (even parity)
·
AF (Auxiliary Flag)
Tugas: Digunakan oleh
instruksi pegaturan desimal.
·
ZF(Zero Flag)
Tugas: Menset (nilai 1),
jika hasil instruksi adalah 0.
·
SF
(Sign Flag)
Tugas: Menset (nilai 1), jika hasilnya adalah negatif dan bernilai
0 jika positif. Kontrol Flag terdiri dari:
·
OF (Overflow Flag)
tugas: Menunjukkan sebuah operasi yang tidak benar yaitu merubah
hasil daripada tanda bit..
·
IF (Interrupt Enable Flag)
Tugas: Jika diset (nilai 1) dapat melakukan operasi interupsi dan
sebaliknya bila bernilai 0, maka interupsi
tidak dapat dilakukan.
·
DF
(Direction Flag)
Tugas: Mengontrol arah dari operasi string. Jika
DF=1, maka register SI dan DI nilainya menurun (decrement); jika DF=0, maka
register DI dan SI nilai menaik (increment). Register ini digunakan untuk
instruksi-instruksi MOVS, MOVSB, MOVSW, CMPS, CMPSB, dan CMPSW.
·
TF (Trap Flag)




