Anda di halaman 1dari 6

Register status Register ini mempunyai struktur yang berbeda dengan register-register lainnya, yang dibentuk dari sebuah

register 16 bit, yang masing-masing bitnya memberikan informasi tertentu tentang keadaan -keadaan yang terjadi pada prosesor, sebagai akibat proses pengolahan data. Informasi yang diwakili oleh sebuah bit pada register status disebut 'flag'. Hanya 9 dari keseluruhan 16 bit yang dipakai oleh register status sebagai tanda kondisi-kondisi prosesor. Tabel Register Status (Flag) Nama Flag Fungsi RESET (0) CF Carry Flag NC PF Parity Flag PO Even AF Auxiliary Carry Flag NA Carry ZF Zero Flag NZ SF Sign Flag PL Negative OF Overflow Flag NV Overflow IF Interrupt Flag DI Interupt DF Direction Flag UP Downward Arti No Carry Parity Odd No Aux. Carry Non Zero Plus No Overflow SET (1) Arti CV Carry PE Parity AC ZR NG OV Enable Aux. Zero

Disable Interupt EI Upward DN

Carry Flag (CF) akan 'set' (menjadi logika '1', tinggi), apabila terjadi 'bawaan' (carry) atau 'pinjaman' (borrow) dalam suatu hasil proses perhitungan (arithmetic) pada Most Significant Bit (MSB, bit paling berbobot). Jika hal-hal itu tidak terjadi maka CF akan 'reset' (logika '0', rendah). Kalau dalam suatu instruksi, terjadi hasil yang menunjukkan bahwa sistem pengecekan paritas adalah 'paritas genap' (even parity), maka PF akan 'set'. Bila yang terjadi 'paritas ganjil' (odd parity), PF akan 'reset'. Auxiliary Carry Flag dipakai untuk menunjukkan hasil perhitungan pada byte rendah dari suatu bilangan binary 16 bit. Jika terjadi 'bawaan' atau 'pinjaman' dari nibble bawah (low nibble) ke nibble atas (high nibble), . AF akan 'set', sebaliknya AF akan di 'reset'. Zero Flag akan 'set' kalau dalam suatu proses perhitungan di hasilkan nilai nol. Bila hasilnya bukan nol, ZF akan 'reset'. SF atau 'Sign Flag' adalah bit yang akan mendeteksi suatu bilangan sebagai bilangan positif atau bilangan negatif. Hal ini dilakukan dengan melihat MSB dari bilangan tersebut. Apabila MSB menunjukkan nilai '1' (set), maka bilangan itu adalah negatif, jika '0' (reset), bilangan positif. OF adalah 'Overflow Flag', berguna untuk menunjukkan bahwa telah terjadi 'overflow' yaitu jumlah bit sebagai hasil suatu proses perhitungan telah melampaui batas yang diperkenankan. Mikroprosesor 8088 mempunyai kemampuan untuk bekerja dalam mode 'langkah tunggal' (single-step), yaitu semua instruksi dilaksanakan dengan cara satu demi satu. Mode ini dimungkinkan dengan jalan membuat TF (Trap Flag) masuk ke logika '1' atau 'set'. Bagi seorang programmer, mode ini akan sangat berguna dalam pekerjaan 'debugging'. Interrupt Flag (IF) untuk mendeteksi adanya permintaan interupsi dari peralatan-peralatan luar. Bila flag ini ada dalam keadaan set, maka pendeteksian interupsi oleh 8088 akan aktif, akan tetapi jika IF dalam

keadaan reset, semua permintaan interupsi yang "maskable" (tidak mutlak) akan diacuhkan. DF adalah 'Direction Flag', berguna menentukan arah dari operasi-operasi 'string' (untaian string), yaitu bila DF di 'set', maka operasi string akan mengurutkan alamat dari atas ke bawah, akan tetapi, bila flag ini di'reset', pengalamatan diurutkan dari alamat rendah ke alamat tinggi.

FLAGS REGISTER Sesuai dengan namanya Flags (bendera), register ini menunjukkan kondisi dari suatu keadaan (YA atau TIDAK). Setiap keadaan hanya dapat digunakan 1 bit saja, sehingga berdasarkan jumlah bitnya Flags Register ini mampu mencatat sampai 16 keadaan. Bit-bit pada flag register akan mengalami perubahan tergantung pada proses yang baru saja berlangsung. Bit-bit tersebut adalah sebagai berikut : 1.Carry (C) Mengindikasikan ada tidaknya bawaan (carry) setelah operasi pengurangan. C=1 (CY) berarti ada bawaan, sebaliknya C=0 (CN) berarti tidak ada bawaan. Bit C juga berfungsi untuk mengindikasikan kesalahan (error) pada beberapa program dan prosedur. 2.P (Parity) Mengindikasikan jumlah bit 1 dalam suatu data. Bila P=0 (PO) berarti paritasnya ganjil, dan bila P=1 (PE) berarti paritasnya genap. Sebagai contoh, bila dalam suatu dataada 3bit 1 berarti P=0 (paritas ganjil). Dalam komunikasi data antar komputer, paritas dapat digunakan untuk pengecekan kesalahan pengiriman data. 3.A (Auxiliary Carry) Mengindikasikan ada atau tidaknya bawaan (carry) pada bit ke-3 dan ke-4 setelah operasi pengurangan. A=1 berarti ada bawaan, sebaliknya A=0 berarti tidak ada bawaan. Bit A ini relatif jarang digunakan dalam program. 4.Z (Zero) Mengindikasikan apalah hasil suatu operasi aritmatika atau logika bernilai 0 atau bukan. Bila Z=1 berarti hasilnya 0, dan Z=0 berarti hasilnya bukan 0. Seperti bit C, bit Z juga berfungsi untuk mengidentifikasikan kesalaha dalam suatu programatau prosedur. 5.S (Sign) Mengindikasikan apakah hasil suatu operasi aritmatika atau logika positif atau negatif. Bila S=1 berarti hasilnya negatif, dan S=0 berarti hasilnya positif. 6.T (Trap) Bit ini bila diset 1 maka dimungkinkan melakukan debugging (penelusuran kesalahan). 7.I (Interrupt) Mengendalikan operasi interupsi perangkat keras. Bila I=1 berarti pin INTR enable (bisa digunakan), bila I=0 berarti pin INTR disable (tidak bisa digunakan). Untuk mengendalikan bit I ini dapat dilakukan dengan instruksi STI (mengeset I=1) dan CLI (mereset I=0).

8.D (Direction) Mengendalikan arah pencacahan (increment atau decrement) DI dan SI pada operasi string. Bila D=1 arah pencacahan adalah turun (decrement), bila D=0 maka arah penccahan adalah naik (increment). Untuk mengendalikan bit D ini dapat dilakukan dengan instruksi STD (mengeset D=1) dan CLD (mereset D=0). 9.O (Overflow) Mengindikasikan apakah hasil operasi penjumlahan atau pengurangan melampaui kapasitas mesin atau tidak. Sebagai contoh, bila sebuah bilangan 7Fh (127d) dijumlahkan dengan 01h (01d) akan menghasilkan 80h. Bila kedua bilangan dijumlahkan dengan menggunakan register 8 bit, 80h akan diartikan sebagai -128d, padahal seharusnya 128d (positif). Pada kasusu ini, bit

0 akan diset = 1 untuk mengindikasikan bahwa operasi penjumlahan 8bit tidak mampu menjumlahkan kedua bilangan tersebut. Sebagai pemecahannya, dapat dilakukan dengan operasi penjumlahan 16bit. 10.IOPL (Input-Output Privilege Level) Digunakan untuk operasi protected mode untuk memilih tingkat keistimewaan (privilege level) piranti masukan-keluaran. 11.NT (Nested Task) Mengindikasikan apakah operasi yang sedang dilakuakan digandeng (nested) dengan operasi lain pada operasi protected mode. 12.RF (Resume) Digunakan pada saat debugging untuk mengendalikan kelanjutan eksekusi. 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.

Flag Register Register Flag adalah register 16 bit, fungsi register ini untuk mencatat tanda yang berkaitan dengan operasi khusus tentang kerja mikroprosessor, yaitu: - Overflow Flag (OF) - Direction Flag (DF) - Interrupt Flag (IF) - Trap Flag (TF) Sedangkan tanda yang berkaitan dengan kerja mikroprosessor akibat operasi aritmatika dan logika yaitu: - Sign Flag (SF) - Zero Flag (ZF) - Auxiliarry Carry Flag (AF) - Paritiy Flag (PF) - Carry Flag (CF) Register 16 bit dengan komposisi sebagai berikut :

OF

DF

IF

TF

SF

ZF

AF

PF

CF

FLAG CF CARRY FLAG

NILAI BIT 1 CARRY

NILAI BIT 0 NOT CARRY

PF

PARITY FLAG

EVEN PARITY

ODD PARITY

AF

AUXILIARY FLAG ZERO FLAG

NOT CARRY

CARRY

ZF

ZERO

NOT ZERO

SF

SIGN FLAG

NEGATIF

POSITIF

TF

TRAP FLAG

TRAP

NOT TRAP

IF

INTERUPT FLAG

ENABLE

DISABLE

DF

DIRECTION FLAG OVERFLOW FLAG

DECREMENT

INCREAMENT

OF

OVERFLOW

NOT OVERFLOW

Flag operasi aritmatika dan logika : CF, PF, AF, ZF, SF. Flag operasi khusus kerja mikroprosesor : IF, DF, OF, TF.

Counter register adalah register serbaguna yang berfungsi sebagai: a. pencacah untuk operasi loop; b. pencacah untuk operasi shift dan rotate; dan c. pencacah untuk operasi string. CONTROL REGISTER terdiri dari : 1. 2. 3. 4. Program Counter (PC) Instruction Register (IR) Memory Address Register (MAR) Memori Buffer Register (MBR) Control Register dan Status Register : Bermacam-macam register yang digunakan untuk mengontrol operasi prosesor. Pada sebagian besar mesin, sebagian besar register tersebut bersifat tidak visible terhadap pengguna. Bebrapa register dapat diakses oleh instruksi-instruksi mesin yang dieksekusi dalam mode sistem operasi. Tentu saja, mesin yang berbeda akan memiliki organisasi register yang berlainan dan

akan memakai terminology yang berbeda pula. Disamping register-register MAR, MBR, I/O AR, I/O BR, terdapat registerregister yang penting bagi eksekusi instruksi seperti dibawah ini. - Program Counter (PC) : berisi alamat instruksi yang akan diambil.

- Instruction Register (IR) : berisi instruksi terakhir yang digunakan. Memory Data Register (MDR), yaitu register yang digunakan untuk menampung data atau instruksi yang dikirimkan dari main memory ke CPU, atau menampung data yang akan disimpan ke main memory sebagai hasil olahan CPU. 5. Memory Address Register (MAR) digunakan untuk menampung alamat data atau instruksi pada main memory yang akan diambil atau yang akan diletakkan.

Memory Buffer Register atau yang biasa disingkat dengan MBR adalah suatu register yang berfungsi untuk memuat isi informasi yang akan dituliskan ke memori atau baru saja dibaca dari memori pada alamat yang ditunjukkan oleh isi MAR (Memory Address Register) , atau untuk menampung data dari memori (yang alamatnya ditunjuk oleh MAR) yang akan dibaca. MBR dapat berukuran m bit, 2m bit, 4m bit, dst dimana m = jumlah bit minimal dalam satu alamat (minimum addressable unit). MBR berperan dalam proses pengaksesan memori yaitu dalam proses read/write dari atau ke memori. Berikut ini urutan proses read dari memori. Taruh alamat memori yang akan dibaca (dalam unsigned(range 0 hingga 2n binary) ke MAR 2 1). Kirim READ signal melalui READ control line. Decode isi MAR sehingga diperoleh nilai x dan y (nilai MAR tidak berubah). Taruh isi alamat yang ditunjuk ke dalam MBR. Sedangkan, urutan proses write ke memori adalah sebagai berikut. Taruh alamat memori yang akan ditulisi (dalam unsigned binary) ke MAR (range 0 hingga 2n 1). Taruh data yang akan ditulis ke MBR. Kirim signal WRITE melalui WRITE control line. Decode isi MAR sehingga diperoleh nilai x dan y (nilai MAR tidak berubah). Copy-kan isi MBR ke memori (isi MBR tidak berubah).

Anda mungkin juga menyukai