Docstoc

STATUS or FLAG REGISTER 2

Document Sample
STATUS or FLAG REGISTER 2 Powered By Docstoc
					BY ISMUHAR DWI PUTRA
Apa itu Status Register
  Status register adalah salah satu bagian dari
REGITER.
  Status Register dibagi atas beberapa jenis
menurut bit-bit yang ada pada setiap
microprosesor.
 Intel   8086/80286: flag register 16-bit
  (FLAGS); system flags, control flag, and
  status flags;
 Intel 80386/80486: flag register 32-bit
  (EFLAGS); system flags, control flag, and
  status flags;
 Pentium I/IV: flag register 64-bit (RFLAGS);
          FLAG REGISTER
    Flag Register 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.
• Register 16 bit dengan komposisi sebagai berikut :

  15    14 13 12        11   10   9       8      7     6    5    4    3   2    1   0
  X     X    X   X   OF DF        IF     TF    SF    ZF    X    AF    X PF     X CF

                 FLAG                    NILAI BIT 1             NILAI BIT 0
   CF       CARRY FLAG                 CARRY               TIDAK ADA CARRY
   PF       PARITY FLAG                PARITY GENAP        PARITY GANJIL
   AF       AUXILIARY FLAG             NOT CARRY           CARRY
   ZF       ZERO FLAG                  ZERO                BUKAN ZERO
   SF       SIGN FLAG                  NEGATIF             POSITIF
   TF       TRAP FLAG                  TRAP                NOT TRAP
   IF       INTERUPT FLAG              ENABLE              DISABLE
   DF       DIRECTION FLAG             DECREMENT           INCREAMENT
  OF OVERFLOW FLAG              OVERFLOW               TIDAK OVERFLOW
  Flag operasi aritmatika dan logika : CF, PF, AF, ZF, SF.
  Flag operasi khusus kerja mikroprosesor : IF, DF, OF, TF.                            4
Contoh Flag
Register pada
8086
Contoh Flag Register pada
          8088
        EFLAG REGISTER
   Eflag Register adalah register 32 bit
yang fungsinya hampir sama seperti flag
register. Hanya terdapat perbedaan pada
bit yang dapat diproses. Terdapat 8
tambahan bit pemroses pada Eflag.
Dengan adanya tambahan bit pemroses
maka pemrosesan untuk register akan
lebih cepat dari Flag Register.
Contoh Eflag Register pada
     80386/80486
Bit yang digunakan
       RFLAG REGISTER
   Rflag Register juga hampir sama
dengan Eflag register. Hanya alokasi
bit nya lebih besar yaitu 64 bit. Semua
fungsi pemrosesan sama dengan Eflag
register. Tidak ada penambahan
pemrosesan lagi pada register ini.
Contoh RFLAG REGISTER pada
        Pentium I/IV
   Bit-bit pada flag register akan mengalami
perubahan tergantung pada proses yang baru
saja berlangsung.
      Penjelasan Bit-bit tersebut adalah sebagai
berikut :
 CF (Carry Flag) => Mengindikasikan ada
   tidaknya bawaan (carry) setelah operasi
   pengurangan dan penjumlahan.
Contoh:           1111
       Carry     10001110
                00111101 +
                11001011
   PF (Parity Flag) => 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 data
    ada 3bit “1” berarti P=0 (paritas ganjil).
        Dalam komunikasi data antar komputer,
    paritas dapat digunakan untuk pengecekan
    kesalahan pengiriman data.
    Contoh Lain: 0101000
                   0001000
                   ----------- +
                   0110000 = parity genap
   AF       (Auxiliary  Carry    Flag)     =>
    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.
       Sebagai contoh penambahan angka
    11001000B (C0H) dan 0000100B (08H) akan
    mengatur flag AC, karena ada pemanggilan
    dari bit ketiga.
   ZF (Zero Flag) => 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.
    Contoh:         0111 1000
                  0111 1000 _
                  0000 0000
   SF (Sign Flag)
        Mengindikasikan apakah hasil suatu operasi
    aritmatika atau logika positif atau negatif. Bila
    S=1 berarti hasilnya negatif, dan S=0 berarti
    hasilnya positif.
        Bilangan bertanda (Sign) dibagi menjadi
    bilangan positif (+) dan bilangan negatif (-).
    Pada bilangan bertanda, bit terakhir (bit ke-16)
    diperlakukan sebagai tanda (+) atau tanda(-).
    Jika bit terakhir tersebut bernilai 1 berarti
    bilangan tersebut negatif dan jika bit terakhir
    bernilai 0 berarti bilangan tersebut positif
   T F (Trap FLag)


      Bit ini bila diset 1 maka
    dimungkinkan melakukan debugging
    (penelusuran kesalahan).
   IF (Interrupt Flag)
        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).
   DF (Direction Flag)
        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).
   OF (Overflow Flag)
        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 kasus 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.
   IOPL (Input-Output Privilege Level)
        Digunakan untuk operasi protected
    mode      untuk     memilih       tingkat
    keistimewaan (privilege level) piranti
    masukan-keluaran.

   VF (Virtual Mode)
       Memilih operasi virtual mode pada
    operasi protected mode.
   NT (Nested Task)
       Mengindikasikan apakah operasi
    yang sedang dilakuakan digandeng
    (nested) dengan operasi lain pada
    operasi protected mode.

   RF (Resume)
       Digunakan pada saat debugging
    untuk     mengendalikan kelanjutan
    eksekusi.
   AC (Alignment Check)
       Untuk    mengecek    apakah
    suatu data word atau doubleword
    dialamati ke memori yang bukan
    data     word     atau    bukan
    doubleword.
        Contoh Kasus
Penjumlahan 8 bit:
  3D
  5B +

Alamat yang digunakan
   [06]
   [07] +
   [08]
         Intruksi pada
       Bahasa Assembly

MOV 06h,#3Dh
MOV 07h,#5Bh

MOV A,06h
ADD A,07h
MOV 08h,A
Proses Pengiriman Data
Setelah Pemrosesan
             Bibliografi
 http://ratna-punya-
  blog.blogspot.com/flags-register.html
 http://ndoware.com/registersmcs51.html
 Settiiawardhana. Bahasa Assemblly
  (Buku Komputer 3). Pemrograman
  Ziillog Z80.
 SoegijardjoSoegijoko. 1986. Pengantar
  Mikroprosesor. Bandung : PAU Bid
  Mikroelektrika.

				
DOCUMENT INFO
Shared By:
Tags:
Stats:
views:165
posted:1/6/2012
language:Malay
pages:28
ismuhar dwi putra ismuhar dwi putra Teknik Informatika http://
About