Anda di halaman 1dari 28

REGISTER

Oleh : Oman Somantri,


S.Kom
Email :
oman_mantri@yahoo.com

POLITEKNIK HB D3 TEKNIK KOMPUTER TEGAL @2012

General Purpose
Register

Pointer Register
Indeks Register

Flag Register

Gbr. Register
Mikroprocessor
Intel 8086

Segmen
Register 16 bit

General Purpose Register


(Register Serbaguna)
Merupakan register yang dapat digunakan untuk menyimpan
data yang akan diolah atau hasil suatu operasi oleh ALU.
8086 memiliki 8 buah register serba guna yakni: AH, AL,
BH, BL, CH, CL, DH, DL. Register-register ini juga dapat
digunakan secara berpasangan sehingga membentuk
register 16 bit, yaitu; AX (gabungan dari AH dan AL), BX,
CX, dan DX.
AX biasanya digunakan untuk menyimpan hasil operasi,
sehingga disebut akumulator. CX (count) biasanya
digunakan untuk pencacah untuk keperluan perulangan
(loop), sehingga disebut Counter. BX (base) dan DX
(data) biasanya digunakan sebagai penyimpan alamat
offset dari alamat data di memori (dengan segmen DS).

General
cont.

General
cont.
AX: merupakan akumulator, sering

digunakan untuk menyimpan hasil


sementara setelah operasi aritmetika dan
logika.
BX: sering digunakan sebagai register base
untuk menyimpan address base data yang
terletak didalam memori dan juga address
base tabel data.
CX: dapat digunakan sebagai register count.
DX: dapat digunakan sebagai register data.

Flag Register
8086 memiliki flag register dengan panjang16-bit.
Dari 16-bit itu terdapat 9 bendera yang aktif.
Dari 9 bendera yang aktif, 6 bendera diantaranya
(bendera kondisi) digunakan untuk menunjukkan
kondisi-kondisi (status) yang dihasilkan oleh
pelaksanaan instruksi yakni bendera CF (carry
flag), PF (parity flag), AF (auxiliary carry
flag), ZF (zero flag), SF (sign flag), dan OF
(overflow flag).
Sedangkan 3 bendera lainnya (bendera kontrol)
digunakan untuk mengendalikan beberapa operasi
prosesor.

Flag-flag kontrol ini berbeda dengan 6


bendera kondisi dalam hal cara set dan
reset-nya.
Keenam flag kondisi diset dan direset oleh
EU, berdasarkan hasil operasi-operasi
aritmetika atau logika, sedangkan 3 flag
kontrol diset dan direset oleh instruksiinstruksi khusus yang ada pada program.
Flag itu adalah Single Step Trap Flag
(TF), Interrupt Flag (IF), dan String
Direction Flag (DF).

Carry Flag
Bendera carry akan diset ( CF=1 ), jika
operasi ALU menghasilkan carry. Contoh:

Parity Flag
Bendera paritas (parity flag) akan diset
(PF=1), jika pelaksanaan perintah oleh
ALU menghasilkan jumlah bit 1 genap
dan reset (PF=0) jika jumlah bit 1 ganjil.
Contoh: Output ALU=01100011, maka
PF= 1 Output ALU=00101010, maka
PF= 0

Auxiliary Carry Flag


Bendera AF (auxiliary carry flag) akan
diset (AF=1), jika dalam penjumlahan,
bit ke 3 menghasilkan carry. Contoh:

Contoh lain :

Bendera Zero akan diset (ZF=1),


jika operasi ALU memberikan hasil 0.
Bendera Sign akan diset (SF=1),
jika pelaksanaan perintah oleh ALU
menghasilkan bilangan negatif.

Overflow Flag
Bendera OF (Overflow Flag) akan set jika
terjadi overflow yakni jumlah bit hasil
operasi lebih besar dari lebar akumulator.
Contoh:
Jika suatu operasi menghasilkan bilangan
dengan panjang 17-bit, sedangkan
akumulator 8086 hanya16-bit, maka
bendera OF akan set.

Bendera TF (Trap Flag) digunakan


pada mode operasi langkah tunggal
(single step atau trace). Jika bendera
ini set, maka pelaksanaan instruksi
akan dilakukan step demi step.
Bendera IF (Interupt Flag)
digunakan untuk mengijinkan interupsi
dari program.
Bendera DF (String Direction Flag)
digunakan pada operasi string.

Register Antrian
Pada saat EU mendekode atau
melaksanakan suatu instruksi, ia tidak
memerlukan menggunakan bus sehingga
dapat digunakan oleh BIU untuk
mengambil 6 byte instruksi sebagai
instruksi berikutnya yang akan
dilaksanakan.
Instruksi-instruksi tersebut dinamakan
prefetched instruction dan oleh BIU
disimpan dalam register FIFO (first-in firstout) yang disebut juga register antrian.

Ketika EU siap melaksanakan instruksi


berikutnya, ia dengan mudah membaca
instruksi-instruksi dari register antrian
dalam BIU.
Jadi, ketika EU sedang melaksanakan
suatu instruksi, bus dapat digunakan oleh
BIU untuk menulis dan membaca memori
serta mengambil instruksi berikutnya.

Teknologi yang memungkinkan


pengambilan instruksi berikutnya sambil
melaksanakan instruksi yang ada
dinamakan Pipelining.
Berikut ini adalah contoh perbedaan
prosesor 8085 tanpa pipelining dan 8086
dengan pipelining dalam melakukan
pengambilan instruksi, pelaksanaan
instruksi, operasi read dan operasi write.
Nampak bahwa pipelining memberikan
tingkat penggunaan bus yang lebih efektif.

Gbr. Prosesor 8085 tanpa


Pipelining dan 8086 dengan
Pipelining
8085

8086

Register Segmen
8086 mampu mengalamati 220 lokasi memori,
sedangkan panjang register IP (Instruction
Pointer) yang dimilikinya hanya 16-bit.
Untuk memperoleh 20-bit sinyal alamat, 8086
menggunakan bantuan register segmen.
Gabungan antara register segmen16-bit dan
IP 16-bit akan menghasilkan 20-bit sinyal
alamat.
8086 memilki 4 buah register segmen yakni
CS (code segment), SS (stack segment),
ES (extra segment), dan DS (data
segment).

Penempatan
alamat segmen
pada memori 8086

Contoh :
Jika suatu register segmen berisi kode
misalnya CS berisi 348A, maka CS
dianggap memiliki alamat awal 348A0.
BIU secara otomatis akan menambahkan
angka 0 dibelakang isi segmen.
Setiap segmen menempati 64K byte
memori, dan dapat ditempatkan dimana
saja didalam ruang alamat 1-M byte.

Register Segmen
IP berisi
instruksi
berikutnya
yang akan
diambil.
Alamat fisik
yang dihasilkan
BIU diperoleh
dengan cara
seperti
disamping

Bagian alamat awal segmen yang


tersimpan didalam register segmen
dinamakan segment base, dalam contoh
348A adalah segment base yang
tersimpan dalam CS.
Isi IP merupakan offset atau jarak
(displacement) antara alamat awal
segmen dengan alamat fisik yang
dihasilkan. Pada contoh, IP = 4214 berarti
merupakan jarak antara 348A0 (alamat
awal segmen) s.d. 38AB4 (alamat fisik).

Format penulisan alamat fisik :


segment base : offset form
Contoh : Jika CS berisi 348A dan IP =
4214, akan menghasilkan alamat fisik
38AB4. Alamat fisik tersebut dapat
direpresentasikan / disajikan atau ditulis
dalam bentuk :
CS:IP atau 348A:4214 atau
CS:IP=38AB4
Berapa alamat fisik yang
direpresentasikan oleh 4 370:561E, dan
7A32:0028 ?

Register Stack Pointer


Stack adalah bagian memori yang
digunakan untuk menyimpan alamat dan
data selama subprogram dilaksanakan. Jika
sub program selesai dilaksanakan, isi stack
dikembalikan ke lokasi semula, yakni IP dan
akumulator.
SP merupakan register yang berisi offset 16bit yang menghasilkan alamat fisik teratas
dari memori stack. Untuk membangkitkan
alamat fisik 20-bit, SP memerlukan bantuan
register SS (stack segment).

Contoh: jika isi SS = 5000 dan isi SP =


FFE0, maka akan menghasilkan alamat
fisik :

Alamat fisik tersebut dapat


direpresentasikan dalam 5FFE0 (single
number) atau dalam bentuk SS:SP
yakni 5000:FFE0

Register Index & Pointer


Kecuali SP, EU pada 8086 juga memiliki
register base pointer (BP)16-bit, dan juga
register index SI (source index) 16-bit, dan
DI (destination index) 16-bit.
Walaupun BP, SI, dan DI dapat digunakan
sebagai penyimpan sementara dari data
seperti halnya pada register serbaguna,
namun penggunaan utama mereka adalah
menyediakan offset 16-bit dari data untuk
suatu segmen base.
Contoh: Alamat fisik data pada memori akan
dibangkitkan dengan menambah isi SI dengan
alamat segmen base yang direpresentasikan
oleh bilangan16-bit dalam register DS.

SEKIAN
TERIMA KASIH

Anda mungkin juga menyukai