Dataöverföringsinstruktioner i 8051 Microcontroller flyttar data mellan olika minnesplatser inom 8051:s arkitektur. Dessa platser inkluderar:
* Intern ram: 8051:s interna RAM (128 byte).
* Specialfunktionsregister (SFRS): Register som används för att kontrollera olika aspekter av 8051:s operation (t.ex. timers, serieport, avbrott).
* extern ram: Åtkomst till 8051:s adressbuss (om extern RAM är ansluten). (Obs:Åtkomst till extern RAM kräver vanligtvis mer komplexa instruktionssekvenser.)
De primära instruktionerna för dataöverföring är:
* mov (move): Detta är den mest grundläggande instruktionen för dataöverföring. Den kopierar innehållet på en plats (källa) till en annan plats (destination).
* Syntax: `Mov destination, källa '
* Exempel:
* `MOV A, R0`:flyttar innehållet i register R0 till ackumulatorn (A).
* `MOV R1, #55H`:flyttar det omedelbara värdet 55H (hexadecimal) till register R1.
* `MOV R2, @a`:flyttar data på minnesadressen som påpekas av ackumulatorn (a) till register R2. (Indirekt adressering)
* `Mov @a+dptr, r3`:flyttar innehållet i R3 till extern RAM vid adressen beräknad genom att lägga till ackumulatorn (a) och datapekaren (DPTR) register. Detta illustrerar hur extern RAM kan nås indirekt.
* movx (flytta extern): Denna instruktion flyttar specifikt data mellan ackumulatorn (A) och extern RAM. Den använder DPTR (Data Pointer) -registret för att hantera externt minne.
* Syntax: `Movx a, @a+dptr` (flyttar data från extern ram till a) eller` movx @a+dptr, a` (flyttar data från a till extern RAM)
* Push and Pop: Dessa instruktioner fungerar med stacken, en LIFO (sist-in, först-ut) datastruktur vanligtvis belägen i intern RAM.
* push: Skjuter innehållet i ackumulatorn (a) på bunten.
* pop: Poppar det översta elementet från stacken in i ackumulatorn (A). Stackpekaren (SP) uppdateras automatiskt.
* xch (utbyte): Utbyte innehållet i ackumulatorn (a) med innehållet i ett specifikt register eller minnesplats.
* Syntax: `Xch a, ri` (där RI är ett register R0-R7) eller` xch a, @a` (indirekt adressering)
Adresseringslägen:
8051 Instruktioner Använd olika adresseringslägen, inklusive:
* Omedelbar adressering: Operanden är ett konstant värde som ingår direkt i instruktionen. (`MOV R1, #55H`)
* Registeradressering: Operanden är ett register. (`Mov a, r0`)
* Direkt adressering: Operanden är en minnesplats som anges direkt av sin adress inom den interna RAM. (t.ex. 'mov a, 20h' åtkomst till intern RAM -adress 20h).
* indirekt adressering: Operandens adress lagras i ett register (vanligtvis ackumulatorn A eller DPTR). (`Mov a, @a`;` movx a, @a+dptr`)
Dessa instruktioner är grunden för datamanipulation inom 8051. Förstå deras syntax, adresseringslägen och rollerna för register som ackumulatorn och DPTR är avgörande för effektiv 8051 -programmering.