Transfer Data MCS51

Transfer Data MCS51
Transfer Data MCS51

MOV 

Melakukan pemindahan data dari variabel pada kode operasi kedua dan disimpan di variabel pada kode operasi pertama.

MOV A,Rn
Siklus
 Jumlah Byte


Instruksi

1
1


Mov A,Rn

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari Rn (R0…R7) menuju ke akumulator A

MOV A,direct
Siklus
Jumlah Byte
Instruksi
1
2


Mov A,direct


Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari alamat langsung ke akumulator A.

MOV A,@Ri
Siklus
 Jumlah Byte


Instruksi

1
1


Mov A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari alamat yang ditunjuk oleh Register Index (R0 atau R1) menuju ke akumulator A.

MOV A,#data 
Siklus
 Jumlah Byte


Instruksi

1
2


Mov A,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari immediate menuju ke akumulator A.

Contoh:
Data EQU 05H 
  Mov A,#Data 

Konstanta Data yang dideklarasikan sebagai 05H dipindah ke akumulator A sehingga nilai akumulator A menjadi 05H.

MOV Rn,A
Siklus
 Jumlah Byte


Instruksi

1
1


Mov Rn,A

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari akumulator A menuju ke Rn (R0…R7).

MOV Rn,direct  
Siklus
 Jumlah Byte

Instruksi

2
2

Mov Rn,direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari alamat langsung menuju ke Rn (R0…R7).

Contoh:
 Mov  R7,10H 

Data di alamat 10H dipindah ke dalam R7.

MOV Rn,#data
Siklus
Jumlah Byte

Instruksi

1
2

Mov Rn,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari immediate menuju ke Rn (R0…R7).

Contoh:
 Mov R7,#05H

Data 05H dipindah ke dalam R7.

MOV direct,A
Siklus
 Jumlah Byte


Instruksi

1
2


Mov direct,A

Flag
C
AC
F0
RS1
RS0
OV
P
  
  

Melakukan pemindahan data dari akumulator A menuju ke alamat langsung.

Contoh:
  Mov  10H,A 

Data di akumulator A dipindah ke alamat 10H.

MOV direct,Rn 
Siklus
 Jumlah Byte

Instruksi

2
2

Mov direct,Rn

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari Rn (R0…R7) menuju ke alamat langsung.

MOV direct,direct 
Siklus
 Jumlah Byte

Instruksi

2
3

Mov direct,direct

Flag
C
AC
F0
RS1
RS0
OV
P
  
  

Melakukan pemindahan data dari alamat langsung menuju ke alamat langsung.

Contoh:
  Mov  P1,P2 

P1 adalah register yang terletak di alamat 90H dan P2 adalah register yang terletak di alamat A0H, oleh karena itu instruksi di atas adalah sama dengan Mov 90H,0A0H. Artinya, data di alamat 90H atau di Port 1, dipindah ke alamat 0A0H atau Port 2.

MOV direct,@Ri 
Siklus
 Jumlah Byte

Instruksi

2
2

Mov direct,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari alamat yang ditunjuk oleh Register Index (R0 atau R1) ke alamat langsung.

Contoh:
  Mov  05H,@R0 

Bila R0 sebelumnya berisi 20H, maka nilai atau data yang tersimpan di alamat 20H akan dipindah ke alamat 05H.

MOV direct,#data 
Siklus
 Jumlah Byte

Instruksi

2
3

Mov direct,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari immediate ke alamat langsung.

MOV @Ri,A 
Siklus
 Jumlah Byte


Instruksi

1
1


Mov @Ri,A

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari akumulator A menuju ke alamat yang ditunjuk oleh Register Index (R0 atau R1).

MOV @Ri,direct 
Siklus
 Jumlah Byte

Instruksi

2
2

Mov @Ri,direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari alamat langsung menuju ke alamat yang ditunjuk oleh Register Index (R0 atau R1).



MOV @Ri,#data 
Siklus
 Jumlah Byte

Instruksi

1
2

Mov @Ri,#data

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data immediate menuju ke alamat yang ditunjuk oleh Register Index (R0 atau R1).

MOV DPTR,#data16 
Siklus
 Jumlah Byte

Instruksi

2
3

Mov DPTR,#data16

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data immediate 16 bit menuju ke DPTR.

Contoh:
  Mov  DPTR,#2000H 

Data 2000H dalam bentuk 16 bit dipindah ke alamat Register DPTR yang terdiri dari DPH dan DPL.

MOVC A,@A+DPTR 
Siklus
 Jumlah Byte

Instruksi

2
1

Movc A,@A+DPTR

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari memori program yang ditunjuk oleh DPTR dengan indeks akumulator A menuju ke akumulator A. Pada instruksi ini, mikrokontroler akan membaca memori program, yaitu sebuah memori yang ada dalam Flash PEROM AT89C51 atau pada sebuah komponen memori di luar AT89C51 yang di mana input RD dari memori tersebut terhubung dengan PSEN. Sinyal PSEN aktif pada saat instruksi ini dijalankan.

Contoh:
  Mov  A,#50H 
  Mov  DPTR,#2000H 
  Movc A,@A+DPTR 

Data yang terletak di komponen memori di luar AT89C51 dan terletak pada alamat 2000H + 50H akan dibaca dan hasilnya disimpan di akumulator A

MOVC A,@A+PC
Siklus
 Jumlah Byte

Instruksi

2
1

Movc A,@A+PC

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari memori program yang ditunjuk oleh PC (Program Counter) dengan indeks akumulator A menuju ke akumulator A. Pada instruksi ini, mikrokontroler akan membaca memori program, yaitu sebuah memori yang ada dalam Flash PEROM AT89C51 atau pada sebuah komponen memori di luar AT89C51 yang di mana input RD dari memori tersebut terhubung dengan PSEN. Sinyal PSEN aktif pada saat instruksi ini dijalankan.

Contoh:
  Mov  A,#50H 
  Movc A,@A+PC 

Apabila pada saat itu Program Counter sedang berada di alamat 2100H, maka data yang terletak di komponen memori di luar AT89C51 dan terletak pada alamat 2100H + 50H akan dibaca dan hasilnya disimpan di akumulator A.

MOVX A,@RI
Siklus
 Jumlah Byte

Instruksi

2
1

Movx A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari memori eksternal (komponen memori di luar AT89C51) ke akumulator A. Jalur alamat dan data dari memori tersebut terhubung melalui Port 0 dan proses pengiriman alamat serta pengambilan data dilakukan secara bergantian (multiplex) Alamat dari memori terdiri dari 8 bit sehingga kapasitas maksimal dari memori adalah 256 byte.

Contoh:
 Mov R0,#50H  Movx A,@R0

Data di alamat 50H dari memori eksternal dipindah ke akumulator A.

MOVX A,@DPTR
Siklus
 Jumlah Byte

Instruksi

2
1

Movx A,@DPTR

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari memori eksternal yang ditunjuk oleh DPTR menuju ke akumulator A. Berbeda dengan MOVC, pada saat instruksi ini dijalankan, sinyal yang muncul adalah sinyal RD (bukan PSEN), sehingga memori eksternal di mana input RDnya terhubung dengan RD dari AT89C51 yang terbaca.

Contoh:
  Mov  DPTR,#2500H 
  Movx A, @DPTR 

Data yang terletak di alamat 2500H dipindah ke akumulator A.

MOVX @RI,A
Siklus
 Jumlah Byte


Instruksi

2
1


Movx @Ri,A

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari akumulator A ke memori eksternal yang ditunjuk oleh Register Indeks. Jalur alamat dan data dari memori tersebut terhubung melalui Port 0 dan proses pengiriman alamat serta pengiriman data dilakukan secara bergantian (multiplex) Alamat dari memori terdiri dari 8 bit sehingga kapasitas maksimal dari memori adalah 256 byte.

Contoh:
 Mov R0,#60H  Movx @R0,A

Data di akumulator A dipindah ke alamat yang ditunjuk oleh R0 pada memori eksternal.

MOVX @DPTR,A 
Siklus
Jumlah Byte
Instruksi
2
1

Movx @DPTR,A


Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pemindahan data dari akumulator A ke alamat yang ditunjuk oleh DPTR pada memori eksternal.

Contoh:
  Mov  A,#55H 
  Mov  DPTR,#3000H 
  Movx @DPTR,A 

Data 55H pada akumulator A dipindah ke alamat 3000H yang terletak pada memori eksternal.

PUSH DIRECT
Siklus
 Jumlah Byte


Instruksi

2
2


Push direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan penyimpanan data dari suatu register atau memori ke dalam stack. Lokasi data dalam stack tersebut ditunjuk oleh stack pointer. Pada saat instruksi ini dijalankan, nilai dari stack pointer akan bertambah satu dan register atau memori yang di PUSH akan masuk ke dalam alamat yang ditunjuk oleh stack pointer tersebut.

Contoh:
  Push 

Isi dari SP sebelumnya adalah 09H, maka SP akan bertambah 1 menjadi 0AH dan nilai akumulator A akan tersimpan di alamat 0AH.

POP DIRECT
Siklus
Jumlah Byte


Instruksi

2
2


Pop direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Melakukan pengambilan data dari dalam stack ke suatu register atau memori. Lokasi data dalam stack tersebut ditunjuk oleh stack pointer. Pada saat instruksi ini dijalankan, data di alamat yang ditunjuk oleh stack pointer akan dipindah ke register atau memori dilanjutkan dengan pengurangan nilai stack pointer dengan 1.

Contoh:
  Pop 

Isi dari SP sebelumnya adalah 08H, maka data yang tersimpan di alamat 08H akan dipindah ke Register B dilanjutkan dengan pengurangan nilai SP menjadi 07H.

XCH A,RN
Siklus
Jumlah Byte


Instruksi

1
1


XCH A,RN

Flag
C
AC
F0
RS1
RS0
OV

P
  









Menukar data yang tersimpan di akumulator A dengan Rn (R0…R7).

XCH A,DIRECT
Siklus
 Jumlah Byte


Instruksi

1
2


Xch direct

Flag
C
AC
F0
RS1
RS0
OV
P
  

Menukar data yang terseimpan di akumulator A dengan alamat langsung.

Contoh:
  XCH A,70H

Data di akumulator A ditukar dengan data di alamat 70H dari RAM Internal.

XCH A,@Ri
Siklus
Jumlah Byte


Instruksi

1
1


Xch A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Menukar data yang tersimpan di akumulator A dengan alamat yang ditunjuk oleh Register Index (R0 atau R1).

Contoh:
  XCH A,@R0

Data di akumulator A ditukar dengan data di alamat yang ditunjuk oleh R0.

XCHD A,@RI 
Siklus
 Jumlah Byte

Instruksi

1
1

XCHD A,@Ri

Flag
C
AC
F0
RS1
RS0
OV
P
  

Menukar data nibble rendah dari akumulator A dengan nibble rendah dari data yang ditunjuk oleh Register Indeks (R0 atau R1). Nibble tinggi tidak berubah.

Contoh:
 XCHD A,@R0 

Bila sebelumnya akumulator A berisi 15H, R0 berisi 20H dan isi dari RAM internal alamat 20H adalah 41H, maka setelah instruksi ini dijalankan isi dari akumulator A berubah menjadi 11H dan isi RAM Internal di alamat 20H menjadi 45H.

Posting Komentar

Lebih baru Lebih lama

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