Operasi Logika MCS51

Operasi Logika MCS51
Operasi Logika MCS51

ANL

Melakukan operasi AND antara dua buah variabel dan menyimpannya di variabel tujuan.  Apabila variabel tujuan adalah akumulator, maka variabel yang lain dapat menggunakan register (Rn), alamat langsung, tak langsung atau immediate data, apabila variabel tujuan adalah alamat langsung, maka variabel yang lain dapat menggunakan akumulator atau immediate data.

ANL A,Rn
Siklus
 Jumlah Byte


Instruksi

1
1


ANL A,Rn

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi AND antara akumulator A dan Rn (R0…R7) dan hasilnya disimpan di akumulator A.

ANL A,direct
Siklus
 Jumlah Byte


Instruksi

1
2


ANL A,direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi AND antara akumulator A dan alamat langsung dan hasilnya disimpan di akumulator A.

Contoh:
  ANL A,05H

Akumulator A di AND dengan data di alamat 05H dan hasilnya disimpan di akumulator A.

ANL A,@Ri
Siklus
 Jumlah Byte


Instruksi

1
1


ANL A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi AND antara akumulator A dan data yang ditunjuk oleh Register Index (R0 atau R1) serta hasilnya disimpan di akumulator A.

Contoh:
  ANL A,@R0

Akumulator A di AND dengan data yang ditunjuk oleh R0, misalkan R0 berisi 50H, maka akumulator A di AND dengan data yang tersimpan di alamat 50H dan hasilnya disimpan di akumulator A.

ANL A,#data
Siklus
 Jumlah Byte


Instruksi

1
2


ANL A,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi AND antara akumulator A dan immediate data serta hasilnya disimpan di akumulator A.

ANL direct,A
Siklus
 Jumlah Byte


Instruksi

1
2


ANL direct,A

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi AND antara alamat langsung dengan akumulator A serta hasilnya disimpan di alamat langsung tersebut.

Contoh:
  ANL 07H,A 

Data di alamat 07H di AND dengan akumulator A dan hasilnya kembali disimpan di alamat 07H.

ANL direct,#data

Siklus
Kode  Operasi 

Instruksi

2
3

ANL direct,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi AND antara alamat langsung dengan immediate data serta hasilnya disimpan di alamat langsung tersebut.

ORL

Melakukan operasi OR antara dua buah variabel dan menyimpannya di variabel tujuan.  Apabila variabel tujuan adalah akumulator, maka variabel yang lain dapat menggunakan register (Rn), alamat langsung, tak langsung atau immediate data, apabila variabel tujuan adalah alamat langsung, maka variabel yang lain dapat menggunakan akumulator atau immediate data.

ORL A,Rn
Siklus
 Jumlah Byte


Instruksi

1
1


ORL A,Rn

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara akumulator A dan Rn (R0…R7) dan hasilnya disimpan di akumulator A.

ORL A,direct
Siklus
 Jumlah Byte


Instruksi

1
2


ORL A,direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara akumulator A dan alamat langsung dan hasilnya disimpan di akumulator A.

Contoh:
  ORL  A,05H  

Akumulator A di OR dengan data di alamat 05H dan hasilnya disimpan di akumulator A.

ORL A,@Ri
Siklus
 Jumlah Byte


Instruksi

1
1


ORL A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara akumulator A dan data yang ditunjuk oleh Register Index (R0 atau R1) serta hasilnya disimpan di akumulator A.

Contoh:
  ORL  A,@R0 

Akumulator A di OR dengan data yang ditunjuk oleh R0, misalkan R0 berisi 50H, maka akumulator A di OR dengan data yang tersimpan di alamat 50H dan hasilnya disimpan di akumulator A.

ORL A,#data
Siklus
 Jumlah Byte

Instruksi

1
2

ORL A,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara akumulator A dan immediate data serta hasilnya disimpan di akumulator A.

ORL direct,A
Siklus
 Jumlah Byte
Instruksi
1
2
ORL direct,A
Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara alamat langsung dengan akumulator A serta hasilnya disimpan di alamat langsung tersebut.

Contoh:
  ORL  07H,A

Data di alamat 07H di OR dengan akumulator A dan hasilnya kembali disimpan di alamat
07H.

ORL direct,#data
Siklus
 Jumlah Byte

Instruksi

2
3

ORL direct,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara akumulator A dan immediate data serta hasilnya disimpan di akumulator A.

XRL

Melakukan operasi EXOR antara dua buah variabel dan menyimpannya di variabel tujuan.  Apabila variabel tujuan adalah akumulator, maka variabel yang lain dapat menggunakan register (Rn), alamat langsung, tak langsung atau immediate data, apabila variabel tujuan adalah alamat langsung, maka variabel yang lain dapat menggunakan akumulator atau immediate data.

XRL A,Rn
Siklus
 Jumlah Byte


Instruksi

1
1


XRL A,Rn

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi EXOR antara akumulator A dan Rn (R0…R7) dan hasilnya disimpan di akumulator A.

XRL A,direct
Siklus
 Jumlah Byte


Instruksi

1
2


XRL A,direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi EXOR antara akumulator A dan alamat langsung dan hasilnya disimpan di akumulator A.

Contoh:
  XRL  A,05H

Akumulator A di EXOR dengan data di alamat 05H dan hasilnya disimpan di akumulator A.

XRL A,@Ri
Siklus
 Jumlah Byte


Instruksi

1
1


XRL A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi EXOR antara akumulator A dan data yang ditunjuk oleh Register Index (R0 atau R1) serta hasilnya disimpan di akumulator A.

Contoh:
  XRL  A,@R0

Akumulator A di EXOR dengan data yang ditunjuk oleh R0, misalkan R0 berisi 50H, maka akumulator A di EXOR dengan data yang tersimpan di alamat 50H dan hasilnya disimpan di akumulator A.

XRL A,#data
Siklus
 Jumlah Byte


Instruksi

1
2


XRL A,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi EXOR antara akumulator A dan data yang ditunjuk oleh Register Index (R0 atau R1) serta hasilnya disimpan di akumulator A.

Contoh:
  XRL  A,@R0 

Akumulator A di EXOR dengan data yang ditunjuk oleh R0, misalkan R0 berisi 50H, maka akumulator A di EXOR dengan data yang tersimpan di alamat 50H dan hasilnya disimpan di akumulator A.

XRL direct,A
Siklus
 Jumlah Byte


Instruksi

1
2


XRL direct,A

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan operasi OR antara alamat langsung dengan akumulator A serta hasilnya disimpan di alamat langsung tersebut.

Contoh:
  ORL  07H,A

Data di alamat 07H di OR dengan akumulator A dan hasilnya kembali disimpan di alamat 07H.

XRL direct,#data
Siklus
 Jumlah Byte

Instruksi

2
3

XRL direct,#data

Flag
C
AC
F0
RS1
RS0
OV

P
  









Melakukan operasi EXOR antara alamat langsung dengan immediate data serta hasilnya disimpan di alamat langsung tersebut.

CLR A
Siklus
 Jumlah Byte


Instruksi


1
1


CLR A


Flag
C
AC
F0
RS1
RS0
OV

P
  









Memberikan nilai 0 pada 8 bit Akumulator A.

CPL A
Siklus
 Jumlah Byte


Instruksi

1
1


CPL A

Flag
C
AC
F0
RS1
RS0
OV

P
  









Melakukan komplemen pada setiap bit dalam akumulator A.

Contoh :
Bila nilai akumulator A adalah 55H atau 01010101b, maka setelah terjadi proses komplemen nilai akumulator A berubah menjadi AAH atau 10101010b.

RL A
Siklus
 Jumlah Byte


Instruksi

1
1


RL A

Flag
C
AC
F0
RS1
RS0
OV

P
  









Melakukan pergeseran ke kiri 1 bit untuk setiap bit dalam akumulator A Contoh:
Nilai Akumulator A adalah 05H atau 00000101b, setelah dilakukan proses pergeseran maka nilai Akumulator A akan berubah menjadi 00001010b atau 0AH.

RLC A
Siklus
 Jumlah Byte
Instruksi
1
1
RLC A
Flag
C
AC
F0
RS1
RS0
OV

P
  
X








Melakukan pergeseran ke kiri 1 untuk setiap bit dalam akumulator A diikuti dengan carry flag. Bit ke 7 akan masuk ke carry flag dan bit carry flag akan masuk ke bit 0.

Contoh:
Nilai Akumulator A adalah 05H atau 00000101b dan carry flag set, setelah dilakukan proses pergeseran maka nilai Akumulator A akan berubah menjadi 00001011b atau 0BH dengan carry flag clear.

RR A
Siklus
Jumlah Byte
Instruksi
1
1


RR A


Flag
C
AC
F0
RS1
RS0
OV

P
  









Melakukan pergeseran ke kanan 1 bit untuk setiap bit dalam akumulator A Contoh:
Nilai Akumulator A adalah 05H atau 00000101b, setelah dilakukan proses pergeseran maka nilai Akumulator A akan berubah menjadi 10000010b atau 0AH.

RRC A
Siklus
 Jumlah Byte
Instruksi
1
1
RRC A
Flag
C
AC
F0
RS1
RS0
OV

P
  
X








Melakukan pergeseran ke kanan 1 untuk setiap bit dalam akumulator A diikuti dengan carry flag. Bit ke 7 akan masuk ke carry flag dan bit carry flag akan masuk ke bit 0.

Contoh:
Nilai Akumulator A adalah 05H atau 00000101b dan carry flag set, setelah dilakukan proses pergeseran maka nilai Akumulator A akan berubah menjadi 00001011b atau 0BH dengan carry flag clear.

SWAP A
Siklus
 Jumlah Byte


Instruksi

1
1


SWAP A

Flag
C
AC
F0
RS1
RS0
OV

P
  









Melakukan operasi penukaran nibble tinggi dan nibble rendah di akumulator A Contoh:
Isi akumulator A adalah 51H, setelah instruksi SWAP A dilakukan maka data 5 di nibble tinggi akan ditukar dengan data 1 di nibble rendah menadi 15H.

Posting Komentar

Lebih baru Lebih lama

نموذج الاتصال