Register merupakan sebagian memori dari mikroprosesor yang dapat diakses dengan kecepatan yang sangat tinggi.
4 Jenis kelompok register :
1. General Purpose Register
2. Pointer dan Index Register
3. Register
Segment
4. Flag Register
General Puspose Register
1.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.
2.Base Register BX
Fungsi: Sebagai register base
untuk mereferensi alamat memori. Operasi yang dapat dilakukan adalah Rotate,
Logic, Shift, dan Aritmetika.
3.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.
4.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.
Pointer dan Index Register
1.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.
2. 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.
3. Register SI dan DI (Source
Index dan Destination index, 16 bit)
Fungsi: Menyimpan nilai-nilai offset dalam segment data memori pada saat bersangkutan.
4. 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
Segment Register
- 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 Flag
Flags register
ini mampu memcatat sampai 16 keadaan.Mikroprosesor 8086/8088 mempunyai Status Flag 1
bit dan 4 Kontrol Flag yang dikonfigurasikan dalam register 16
bit. Flag yang terdapat di mikroprosesor 8088 keatas yaitu:
CF (Carry Flag)
Tugas: Jika terjadi borrow pada operasi pengurangan atau carry pada penjumlahan, bit ini akan bernilai 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.
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.
SF (Sign Flag)
Tugas: Menset (nilai 1), jika hasilnya adalah negatif dan bernilai 0 jika positif.
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)
Tugas: Ditempatkan dalam single step
mode untuk keperluan debug.
NT (Nested Task)
Digunakan pada prosesor 80286 dan 80386 untuk menjaga jalannya interupsi yang terjadi secara beruntun.
IOPL (I/O Protection level)
IOPL (I/O Protection level)
Flag ini terdiri atas 2 bit dan digunakan pada prosesor 80286 dan 80386 untuk mode proteksi.
semakin besar frekuensi xtal maka semkin cepat pemprosesannya
No comments:
Post a Comment