Minggu, 16 Januari 2011

INSTRUKSI LOGIKA


INSTRUKSI LOGIKA

v  Instruksi logika pada Z80 ada 3 yaitu AND, OR dan EXCLUSIVE OR
v  Dapat menggunakan addressing mode = register, register indirect, immediate


A.              ISNTRUKSI AND
Tabel kebenaran AND
A
B
C

0
0
0

1
0
0

0
1
0

1
1
1



            A         AND 0 = 0
            A         AND 1 = A


AND s
A ß A ˆs         artinya operasi logika AND . Bit demi bit dilakukan diantara byte yang ditunjuk oleh operand s dan byte yang ada pada AKUMULATOR, hasilnya disimpan pada AKUMULATOR.

1.      AND data segera dengan AKUMULATOR

AND   data                 ;  A  ß  A AND data
   E6       yy

      2.   AND Register dengan AKUMULATOR

AND   Reg                  ; A ß A AND reg
1010    0xxx
   A        000 = reg B
              001 = reg C
              010 = reg D
              011 = reg E
              100 = reg H
              101 = reg L
              111 = reg A

      3.   AND isi memori dengan AKUMULATOR

AND ( HL)                             A6
AND ( IX + disp )                  DD A6 dd
            AND ( IY + disp )                   FD A6 dd




B.      INSTRUKSI OR
A
B
C

0
0
0

1
0
1

0
1
1

1
1
1


            A         OR 1 = 1
            A         OR 0 = A

OR s

A ß ˇs             Operasi logika OR. Bit demi bit dilakukan diantara byte yang ditunjuk oleh operand s dan byte yang ada pada AKUMULATOR, hasilnya disimpan pada AKUMULATOR.

1.      OR data segera dengan AKUMULATOR
OR      data     A ß A OR DATA
F6        yy

      2.   OR register dengan AKUMULATOR

OR      reg       A ß A OR REG
1011    1xxx
  B         000 = reg B
  001 = reg C
  010 = reg D
  011 = reg E
  100 = reg H
  101 = reg L
  111 = reg A

     3.    OR isi memori dengan AKUMULATOR
OR      ( HL )              B6
OR      ( IX + disp )    DD B6 dd
OR      ( IY + disp )    FD B6 dd

C.       INSTRUKSI EXCLUSIVE OR
Tabel kebenaran XOR
A
B
C

0
0
0

1
0
1

0
1
1

1
1
0


                       A          XOR   A = 0
                       A          XOR   0 = A
                       A          XOR   1 = Ā
XOR  a          A           A          s          
Operasi logika EXOR. Bit demi bit dilakukan diantara byte yang ditunjuk oleh operand s dan byte yang ada pada akumulator, hasilnya disimpan pada AKUMULATOR.


1.      EXCLUSIVE OR data segera dengan AKUMULATOR
                       
                       XOR     data
                        EE       yy

      2.   EXCLUSIVE OR register dengan AKUMULATOR
                      
                       XOR     reg
                       1010     1xxx
 A        000 = reg B
001 = reg C
010 = reg D
011 = reg E
100 = reg H
101 = reg L
111 = reg A

     3.   EXCLUSIVE OR isi  memori dengan AKUMULATOR
XOR   ( HL )                          AE
XOR   ( IX + disp )                DD AE dd
XOR   ( IY + disp )                FD AE dd

D.      INSTRUKSI NOT
Tabel kebenaran NOT
A
C

0
1

1
0


                                            A          CPL  =  Ā

CPL
                        Isi akumulator dibalikan ( inverted ). 0 menjadi 1 dan 1 menjadi 0 (1 komplemen).


E.       INSTRUKSI ROTASI

 RLA                            
 Isi AKUMULATOR dirotasi ke kiri, isi bit 0 dipindahkan ke bit 1 isi bit 1 yang terdahulu dipindahkan ke bit 2 dan seterusnya. Isi bit 7 dicopy pada flag carry dan juga ke bit 0 (bit 0 adalah bit berorde paling rendah).
RLCA
 Isi AKUMULATOR dirotasi ke kiri, isi bit 0 dipindahkan ke bit 1 isi bit 1 yang terdahulu dipindahkan ke bit 2 dan seterusnya. Isi bit 7 dicopy pada flag carry dan isi flag carry terdahulu dicopy ke 0.

RRA
Isi AKUMULATOR dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 terdahulu dipindah ke bit 5, dan seterusnya. Isi bit 0 dicopy ke bit 7 dan juga ke flag carry.

RRCA
 Isi AKUMULATOR dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 terdahulu dipindah ke bit 5, dan seterusnya. Isi bit 0 dicopy ke flag carry dan isi flag carry yang terdahulu dicopy ke bit 7.

RLA r
Isi register r (8 bit) dirotasi ke kiri, isi bit 0 dipindahkan ke 1, isi bit 1 terdahulu dipindahkan ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.
RLA (HL)
Isi memori yang ditunjuk oleh pasangan register HL dirotasi ke kiri, isi bit 0 dipindahkan ke bit 1, isi bit 1 terdahulu dipindahkan ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.
RLA (IX+d)
Isi memori pada lokasi yang ditunjuk oleh jumlah isi register indeks IX dan bilangan bulat penggeser 2 komplemen d dirotasi ke kiri, isi bit 0 dipindah ke bit 1, isi bit 1 terdahulu dipindah ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.




RLA (IY+d)
 Isi memori pada lokasi yang ditunjuk oleh jumlah isi register indeks IY dan bilangan bulat penggeser 2 komplemen d dirotasi ke kiri, isi bit 0 dipindah ke bit 1, isi bit 1 terdahulu dipindah ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry dan juga ke bit 0.

RLC m
Operand m adalah salah satu dari r, (HL), (IX+d), (IY+d), seperti yang telah dijelaskan pada instruksi RLC. Isi operand m dirotasi ke kiri, isi bit 0 dipindah ke bit 1, isi bit 1 terdahulu dipindah ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag dan isi flag carry yang terdahulu dicopy ke 0.

RRA m
Isi dari operand m dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 yang terdahulu dicopy ke bit 5 dan seterusnya. Isi bit 0 dicopy ke flag carry dan juga ke bit 7.
RRC m
 
Isi dari operand m dirotasi ke kanan, isi bit 7 dipindahkan ke bit 6, isi bit 6 yang terdahulu dicopy ke bit 5 dan seterusnya. Isi bit 0 dicopy ke flag carry dan isi flag carry yang terdahulu di copy ke bit 7.

RLD
 Isi 4 bit berorde rendah (bit 3, 2, 1, 0) dari memori yang lokasinya ditunjukan oleh isi pasangan register HL dicopy ke 4 bit berorde tinggi (bit 7, 6, 5, 4) dari lokasi memory yang sama, isi ke 4 bit berorde tinggi terdahulu dicopy ke 4 bit akumulator berorde rendah dari memori pada lokasi yang ditunjukan oleh HL. Isi bit-bit akumulator berorde tinggi tidak terpengaruh.

RRD
Isi 4 bit berorde rendah (bit 3, 2, 1, 0) dari memori yang lokasinya ditunjukan oleh isi pasangan register HL dicopy ke 4 bit berorde tinggi (bit 7, 6, 5, 4) pada memori yang lokasinya ditunjukan oleh pasangan register HL, dan isi 4 bit berorde tinggi dari (HL) dicopy ke 4 bit (HL) yang rendah. Isi 4 bit akumulator berorde tinggi tidak terpengaruh. Catatan : (HL) berarti memori yang lokasinya ditunjuk oleh isi pasangan register HL.

F.     INSTRUKSI SHIFT

SLA m
Pergeseran aritmatik ke kiri dilaksanakan pada isi operand m, bit 0 direset, isi bit 0 terdahulu dipindahkan ke bit 1, isi bit 1 terdahulu dipindahkan ke bit 2, dan seterusnya. Isi bit 7 dicopy ke flag carry.

SRA m
 Pergeseran aritmatik ke kanan dilaksanakan pada isi operand m, isi bit 7 terdahulu dipindahkan ke bit 6, isi bit 6 terdahulu dipindahkan ke bit 5 dan seterusnya, isi bit 0 dipindahkan ke flag carry. Isi bit 7 yang terdahulu tidak berubah.

SRL m
 Pergeseran aritmatik ke kanan dilaksanakan pada isi operand m, isi bit 7 terdahulu dipindahkan ke bit 6, isi bit 6 terdahulu dipindahkan ke bit 5 dan seterusnya, isi bit 0 dipindahkan ke flag carry. Isi bit 7 direset ke 0.



Tidak ada komentar:

Posting Komentar