Corso 8051 - SET D'ISTRUZIONI

ISTRUZIONI DI TRASFERIMENTO DATI


MOV

Istruzione: MOV
Funzione: Trasferisci un byte di Memoria
Sintassi: MOV Operando1,Operando2

Istruzione OpCode N.Byte N.Cicli Flag
MOV @R0,#data 0x76 2 1 Inv
MOV @R1,#data 0x77 2 1 Inv
MOV @R0,A 0xF6 1 1 Inv
MOV @R1,A 0xF7 1 1 Inv
MOV @R0,iram addr 0xA6 2 2 Inv
MOV @R1,iram addr 0xA7 2 2 Inv
MOV A,#data 0x74 2 1 Inv
MOV A,@R0 0xE6 1 1 Inv
MOV A,@R1 0xE7 1 1 Inv
MOV A,R0 0xE8 1 1 Inv
MOV A,R1 0xE9 1 1 Inv
MOV A,R2 0xEA 1 1 Inv
MOV A,R3 0xEB 1 1 Inv
MOV A,R4 0xEC 1 1 Inv
MOV A,R5 0xED 1 1 Inv
MOV A,R6 0xEE 1 1 Inv
MOV A,R7 0xEF 1 1 Inv
MOV A,iram addr 0xE5 2 1 Inv
MOV DPTR,#data16 0x90 3 2 Inv
MOV R0,#data 0x78 2 1 Inv
MOV R1,#data 0x79 2 1 Inv
MOV R2,#data 0x7A 2 1 Inv
MOV R3,#data 0x7B 2 1 Inv
MOV R4,#data 0x7C 2 1 Inv
MOV R5,#data 0x7D 2 1 Inv
MOV R6,#data 0x7E 2 1 Inv
MOV R7,#data 0x7F 2 1 Inv
MOV R0,A 0xF8 1 1 Inv
MOV R1,A 0xF9 1 1 Inv
MOV R2,A 0xFA 1 1 Inv
MOV R3,A 0xFB 1 1 Inv
MOV R4,A 0xFC 1 1 Inv
MOV R5,A 0xFD 1 1 Inv
MOV R6,A 0xFE 1 1 Inv
MOV R7,A 0xFF 1 1 Inv
MOV R0,iram addr 0xA8 2 2 Inv
MOV R1,iram addr 0xA9 2 2 Inv
MOV R2,iram addr 0xAA 2 2 Inv
MOV R3,iram addr 0xAB 2 2 Inv
MOV R4,iram addr 0xAC 2 2 Inv
MOV R5,iram addr 0xAD 2 2 Inv
MOV R6,iram addr 0xAE 2 2 Inv
MOV R7,iram addr 0xAF 2 2 Inv
MOV bit addr,C 0x92 2 2 Inv
MOV iram addr,#data 0x75 3 2 Inv
MOV iram addr,@R0 0x86 2 2 Inv
MOV iram addr,@R1 0x87 2 2 Inv
MOV iram addr,R0 0x88 2 2 Inv
MOV iram addr,R1 0x89 2 2 Inv
MOV iram addr,R2 0x8A 2 2 Inv
MOV iram addr,R3 0x8B 2 2 Inv
MOV iram addr,R4 0x8C 2 2 Inv
MOV iram addr,R5 0x8D 2 2 Inv
MOV iram addr,R6 0x8E 2 2 Inv
MOV iram addr,R7 0x8F 2 2 Inv
MOV iram addr,A 0xF5 2 1 Inv
MOV iram addr,iram addr 0x85 3 1 Inv

Descrizione: MOV copia il valore dell'Operando 2 nell'Operando 1. Il valore dell'Operando 2 rimane inalterato. Ambedue gli operandi devono risiedere nella RAM interna. Nessun flag viene modificato a meno che l'istruzione non trasferisce il valore nel registro PSW (che contiene esso stesso i flag).

** Nota: Nel caso di "MOV iram addr,iram addr" il trasferimento viene effettuato all'inverso delle altre operazioni di mov. Per esempio l'istruzione 0x85, 0x20, 0x20 va interpretata come:
"Carica il contenuto della locazione 0x20 nella locazione 0x50" e non il viceversa come si e' portati a presumere.

Vedi anche: MOVC, MOVX, XCH, XCHD, PUSH, POP, Set d'istruzioni



MOVC


Istruzione: MOVC
Funzione: Trasferisci il byte di codice nell'Accumulatore
Sintassi: MOVC A,@A+Registro


Istruzione OpCode N.Byte N.Cicli Flag
MOVC A,@A+DPTR 0x93 1 2 Inv
MOVC A,@A+PC 0x83 1 1 Inv

Descrizione: MOVC trasferisce un byte di memoria programma nell'Accumulatore. L'indirizzo del byte da trasferire e' calcolato sommando il valore dell'Accumulatore o con DPTR o con il PC (Program Counter). Nel secondo caso il valore del Program Counter viene incrementato di uno prima di essere usato.

Vedi anche: MOV, MOVX, Set d'istruzioni



MOVX

Istruzione: MOVX
Funzione: Trasferisci i dati alla/dalla memoria esterna (XRAM)
Sintassi: MOVX Operando1,Operando2


Istruzione OpCode N.Byte N.Cicli Flag
MOVX @DPTR,A 0xF0 1 2 Inv
MOVX @R0,A 0xF2 1 2 Inv
MOVX @R1,A 0xF3 1 2 Inv
MOVX A,@DPTR 0xE0 1 2 Inv
MOVX A,@R0 0xE2 1 2 Inv
MOVX A,@R1 0xE3 1 2 Inv

Descrizione: MOVX trasferisce un byte alla o dalla memoria esterna dal o all'Accumulatore.

Se l'Operando 1 e' @DPTR, l'Accumulatore e' trasferito nell'indirizzo a 16-bit della memoria esterna indicato da DPTR. Questa istruzione usa entrambe le porte P0 e P2 per trasferire l'indirizzo a 16-bit ed il dato verso l'esterno. Se l'operando 2 e' @DPTR il trasferimento viene eseguito dalla memoria esterna all'Accumulatore.

Se l'Operando 1 e' @R0 o @R1, l'Accumulatore e' trasferito nell'indirizzo a 8-bit della memoria esterna indicata dal registro corrispondente. Questa istruzione usa soltanto la porta P0 per trasferire l'indirizzo a 8-bit ed il dato verso l'esterno. La porta P2 non viene modificata. Se l'operando 2 e' @R0 o @R1 allora il byte viene trasferito dalla memoria esterna all'Accumulatore.

Vedi anche: MOV, MOVC, Set d'istruzioni



POP

Istruzione: POP
Funzione: Prendi il valore dallo Stack
Sintassi: POP


Istruzione OpCode N.Byte N.Cicli Flag
POP iram addr 0xD0 2 2 Inv

Descrizione: POP effettua il "pop" dallo stack all'indirizzo iram addr specificato. L'istruzione POP prende il valore contenuto nella RAM interna puntato dallo stack pointer e lo carica nell'indirizzo iram addr. Lo stack pointer viene poi decrementato di uno.

Vedi anche: PUSH, Set d'istruzioni



PUSH

Istruzione: PUSH
Funzione: Metti il valore nello Stack
Sintassi: PUSH


Istruzione OpCode N.Byte N.Cicli Flag
PUSH iram addr 0xC0 2 2 Inv

Descrizione: PUSH effettua l'operazione di "push" del valore specificato da iram addr nello stack. L'istruzione PUSH, prima incrementa il valore dello stack pointer di uno, poi prende il valore contenuto nell'indirizzo iram addr e lo memorizza nella RAM interna all'indirizzo puntato dallo Stack Poiter.

Vedi anche: POP, Instruction Set



XCH

Istruzione: XCH
Funzione: Scambia i byte
Sintassi: XCH A,Registro


Istruzione OpCode N.Byte N.Cicli Flag
XCH A,@R0 0xC6 1 1 Inv
XCH A,@R1 0xC7 1 1 Inv
XCH A,R0 0xC8 1 1 Inv
XCH A,R1 0xC9 1 1 Inv
XCH A,R2 0xCA 1 1 Inv
XCH A,R3 0xCB 1 1 Inv
XCH A,R4 0xCC 1 1 Inv
XCH A,R5 0xCD 1 1 Inv
XCH A,R6 0xCE 1 1 Inv
XCH A,R7 0xCF 1 1 Inv
XCH A,iram addr 0xC5 2 1 Inv

Descrizione: L'istruzione scambia il valore dell'Accumulatore con il valore del registro indicato nell'istruzione.

Vedi anche: MOV, Instruction Set



XCHD

Istruzione: XCHD
Funzione: Scambia i digit
Sintassi: XCHD A,[@R0/@R1]

Istruzione OpCode N.Byte N.Cicli Flag
XCHD A,@R0 0xD6 1 1 Inv
XCHD A,@R1 0xD7 1 1 Inv

Descrizione: Scambia il nibble meno significato dell'Accumulatore con il nibble meno significativo della locazione di RAM interna indirizzata da R0 o R1. Il nibble piu' significativo dei registri non viene modificato.

Vedi anche: DA, Instruction Set



^ INDICE
< SET D'ISTRUZIONI

(C) Copyright 1997, 1998 by Vault Information Services. All Rights Reserved.
Le informazioni sono fornite senza alcuna garanzia. Per favore vedi dettagli.
Contattaci per l'uso e/o il permesso di divulgazione di questo corso.
Traduzione italiana di: Sergio Salvitti
1