Red de conocimiento informático - Computadora portátil - Todas las instrucciones para 51 microcontroladores

Todas las instrucciones para 51 microcontroladores

Lista de funciones de instrucción MCU

Descripción del código auxiliar

MOV A,Rn E8~EF registro A

MOV A,direct E5 transmisión directa de bytes A

p>

MOV A,@Ri ER~E7 La RAM indirecta envía A

MOV A,#data 74 datos inmediatamente a A

MOV Rn,A F8 ~FF registro A

MOV Rn, byte directo para registrar

MOV Rn, #data 78~7F datos para registrar inmediatamente

MOV dircet,A F5 dircet Un envío directo Byte

MOV dircet,Rn 88~8F registro dircet envía byte directo

MOV dircet1,dircet2 85 dircet1 dircet2 byte directo envía byte directo

MOV dircet, @Ro 86~87 RAM indirecta envía bytes directos

MOV dircet,#data 75 datos directos el número inmediato envía bytes directos

MOV @Ri,A F6~F7 A Enviar indirecto RAM

MOV @Ri,#data 76~77 Los bytes directos de datos se envían a la RAM indirecta

MOV @Ri,#data 76~77 El número inmediato de datos se envía a la RAM indirecta

MOV @Ri,

MOV @Ri, #data 76~77 Datos 76~77 Los datos inmediatos se envían a la RAM indirecta

MOV DPTR, #data16 90 Los datos 15~8 La constante de 16 bits se envía al puntero de datos

data7~0

MOVC A,@A+DPTR 93 El direccionamiento de la memoria del programa es ((A)+( DPTR))

Selección de byte de instrumento A

MOVC A,@A+PC 83 El direccionamiento del byte de memoria del programa es ((A)+(PC));

MOVX A,@Ri E2~E3 Enviar datos externos (dirección de 8 bits) Enviar A

MOVX A,@DPTR E0 Enviar datos externos (dirección de 16 bits) Enviar A

MOVX @Ri,A F2~F3 A envía datos externos (dirección de 8 bits)

MOVX @DPTR, A F0 A envía datos externos (dirección de 16 bits)

PUSH dircet C0 dircet empuja directamente bytes a la pila, SP aumenta en 1

POP dircet D0 dircet empuja directamente bytes desde la pila, SP disminuye en 1

XCH A,Rn C8 ~CF intercambia A y registra

p>

XCH A,dircet C5 dircet intercambia A y bytes directos

XCH A,@Ri C6~C7 intercambia A y RAM indirecta

XCH A,@Ri D6 ~D7 Intercambio A y byte bajo de RAM indirecta

SWAP A C4

Operación aritmética (intercambio de dos nibbles A)

AGREGAR A, Registro Rn 28 ~2F agregado a A

AGREGAR A, dircet 25 byte directo agregado a A

AGREGAR A, @Ri 26~27 RAM indirecta agregada a A

AÑADIR A,#data 24data añade números directos a A

AÑADIR A,Rn 38~3F registros y bytes se añaden a A

AÑADIR A , directo

35dircet Se agregan bytes y bytes directos a A

ADD A,@Ri 36~37 Bytes y bytes indirectos se agregan a A

ADD A,data 34data Se agregan bits literales y enteros a A

AÑADIR A, Rn 98~9F A Restar registro y bits de redondeo

AÑADIR A, dircet 95 dircet A Restar palabras directas Sección y bit de redondeo

ADD A,@Ri 36~37 Se agregó RAM indirecta y bit de redondeo en A

ADD A,

SUBB A, Rn 98~9F A Resta registros y bytes

SUBB A, dircet 95 A Restar bytes y bytes directos

SUBB A, @Ri 96~97 A Restar RAM y bytes indirectos

SUBB A,#data 94 data A Restar dígitos y bytes inmediatos

ADD A,

INC A 04 A Add 1

INC Rn 08~0F Registro más 1

INC dircet 05 dircet Byte directo más 1

INC @Ri 06~07 RAM indirecta más 1

p>

DEC A 14 A menos 1

DEC Rn 18~1F registro menos 1

DECdircet 15 byte directo directo menos 1

DEC @ Ri 16~17 RAM indirecta menos 1

INC DPTR A3 puntero de datos más 1

MUL AB A4 A multiplicado por B

DIV AB 84 A dividido por B

DA A D4 ajusta la suma decimal de A

Operación lógica

ANL A, Rn 58~5F registro "Y" a A

ANL A, dircet 55 dircet byte directo "Y" a A

ANL A, dircet 55 dircet byte directo "Y" a A

ANL A,dircet 55 dircet palabra directa Sección "con" A

ANL A,@Ri 56~57 RAM indirecta "con" A

ANL A, Rn 48~4F registro "con" al byte directo

ANL A, #data 54 datos inmediatos "Y" a A

ANL dircet A 52 dircet A "Y" al byte directo

ANL dircet, # datos 53 dircet datos inmediato "Y" al byte directo

ORL A, Rn 48 ~Registro 4F" o "a A

ORL A, dircet 45 dircet byte directo" o "a A

ORL A,@Ri 46~47 RAM indirecta" o "a A

ORL A,#data 44 datos inmediatamente" o "a A

ORL dircet, A 42 dircet A "o" o "a byte directo

ORL dircet,#data 43 datos dircet inmediato "o" al byte directo

XRL A,Rn 68~6F registra "iso or" o" a A

XRL A, dircet 65 dircet byte directo "o" a A

XRL A,@Ri 66 ~67 RAM indirecta "o" a A

XRL A,@R

i 66~67 RAM indirecta "o" a A

XRL A, @Ri 66~67 RAM indirecta "o" a A

XRL A,#data 64 numeración inmediata de datos" iso "a A

XRL dircet A 62 dircet A "iso "al byte directo

XRL dircet, #data 63 dircet datos "iso "inmediato al byte directo

CLR A E4 Clear

CPL A F4 A Reverse

RL A 23 A Desplazamiento circular a la izquierda

RLC A 33 A Pass Round Desplazamiento circular a la izquierda

CRLCA 33 Desplazamiento circular a la izquierda por redondeo

CRL A 33 Desplazamiento circular a la izquierda por redondeo

CRL A 33 Desplazamiento circular a la izquierda por redondeo Realizar desplazamiento circular a la izquierda

RRR A 03 Realizar desplazamiento circular a la derecha mediante redondeo

RRC A 13 Realizar desplazamiento circular a la derecha mediante redondeo

Control de cambio de programa

ACALL addr 11 *1 addr(a7~a0) Llamada de subrutina absoluta

LCALL addr 16 12 addr(15~8) Llamada de subrutina larga

addr (7~0)

RET 22 Retorno de llamada de subrutina

Dirección RETI 11 32 Regreso de llamada de interrupción

Dirección AJMP 11 △1 dirección(a7~a6) Transferencia absoluta

Dirección LJMP 16 02 addr(15~8) Transferencia larga

addr (7~0)

SJMP rel 80 rel Transferencia corta, transferencia relativa

JMP @A+DPTR 73 Transmisión indirecta relativa a DPTR

JZ rel 60 rel A es transmisión cero

JNZ rel 70 rel A es transmisión cero

CJNE A,dircet,rel B5 dircet rel Bytes directos a A, transmisión desigual

CJNE A,#data,rel B4 data rel Números directos a A, transmisión desigual Transmisión

CJNE A,Rn,#data,rel B8~BF data rel Contar al registro inmediatamente, sin esperar la transmisión

CJNE @Ri,#data,rel B6~B7 data rel Compara datos inmediatos con RAM indirecta, transmisión desigual

DJNZ Rn,rel D8~DF rel registro disminuido en 1, transmisión distinta de cero

DJNZ dircet,rel B5 dircet rel byte directo decremento 1. No

NOP 00 Sin operación

*=a10a9a8l

△=a10a9a80

Operación de variable booleana

CLR C C3 borra el entrante vacío

El bit CLR C2 borra el bit directo vacío

SETB C D3 establece el entrante

El bit SETB D2 restablece el bit directo

p>

CPL C B3 invierte el bit directo

CPL bit B2 invierte el bit directo

ANL C, bit 82 dice "Y" el número directo al bit progresivo

ANL C , /bit B0 acarreo "Y" directo inverso

ORL C, bit 72 dit acarreo "O" directo

ORL C, /bit A0 acarreo "OR" inverso al bit

ORL C, /bit A0 bit "o" lleva directamente

MOV C, acarreo de bit directo A2

Bit MOV, acarreo de bit directo C de 92 bits

JC rel 40 rel desplazamiento relativo de bit 1

p>

JNC rel 50 rel se desplaza en relación con el bit 0

bit JB, en relación con el bit 20 se desplaza directamente a 1

bit JB, en relación con el bit 20 se desplaza con respecto al bit 0

bit JB, con respecto al bit 20, el bit relativo se desplaza 1

bit JB, con respecto al bit 20, el bit relativo es cambiado directamente a 1

bit JNB, en relación con el bit relativo de 30 bits, cambia directamente a 0

bit JBC, en relación con el bit relativo de 10 bits, cambia directamente a 1 y luego borre el bit

[1]. Instrucción de cambio de rotación (4)

RL A ;El contenido del acumulador A se mueve un bit hacia la izquierda

RRR A ;El contenido del acumulador A se mueve un bit hacia la derecha

RRR A ;El contenido del acumulador A se mueve un bit hacia la derecha

p >

RLC A ;El contenido del acumulador A con bit de redondeo CY se desplaza un bit hacia la izquierda

RRC A ;El contenido del acumulador A con bit de redondeo CY se desplaza un bit hacia la derecha

[2]. Instrucción de intercambio de nibble del acumulador (1)

SWAP A; Intercambia el nibble alto y bajo del contenido del acumulador

[3]. Instrucción de inversión (1 instrucción)

CPL A ; Inversión bit a bit del contenido del acumulador

[4]. Borrar instrucción (1 instrucción)

CLR A; 0 → (A), el contenido del acumulador se borra a 0

[5]. /p>

ANL A,datos; El contenido del acumulador A y el contenido de la unidad de dirección directa realizan operaciones lógicas.

Datos ANL,#data; Realiza operaciones lógicas sobre el contenido en la unidad de dirección directa y números inmediatos. El resultado está en la unidad de dirección directa.

ANL A,#data ; Realiza la operación lógica AND sobre el contenido del acumulador A y el valor inmediato.

ANL A,Rn; Se aplica AND al contenido del acumulador A y al contenido del registro Rn.

ANL data,A ;Realiza una operación lógica AND entre el contenido de la unidad de dirección directa y el contenido del acumulador A. El resultado de la operación se almacena en la ubicación de la dirección directa.

ANL A,@Ri; El contenido del acumulador A y el contenido de la unidad de dirección apuntada por el registro de trabajo Ri realizan una operación lógica relativa.

[6].Instrucciones de operación lógica OR (6 instrucciones)

La función de este conjunto de instrucciones es realizar una operación lógica OR sobre el contenido de dos celdas. Si la dirección directa es una dirección de E/S, es una operación de lectura, modificación y escritura.

ORL A,data ;Realiza una operación lógica OR sobre el contenido del acumulador A y el contenido de la ubicación de la dirección directa.

Datos ORL,#data; Realiza una operación OR lógica en el contenido de la unidad de dirección directa y el número inmediato. Los resultados se almacenan en unidades de dirección directa.

ORL A,#data ;Realiza una operación lógica OR sobre el contenido del acumulador A y un número inmediato.

ORL A,Rn ;El contenido del acumulador A y el contenido del registro Rn realizan una operación lógica OR.

Datos ORL,A ;Realiza una operación lógica OR entre el contenido de la ubicación de la dirección directa y el contenido del acumulador A.

ORL A,@Ri ; Realiza una operación lógica OR sobre el contenido del acumulador A y el contenido de la unidad de dirección apuntada por el registro de trabajo Ri.

[7]. Instrucciones de operación lógica OR (6)

XRL A,datos El contenido del acumulador A y el contenido de la unidad de dirección directa realizan operaciones OR lógicas.

Datos XRL,#data; Realiza una operación XOR lógica en el contenido de la unidad de dirección directa y el número inmediato. Los resultados se almacenan en ubicaciones de dirección directa.

XRL A,#data ;Realiza una operación lógica OR sobre el contenido del acumulador A y un número inmediato.

XRL A,Rn; El contenido del acumulador A y el contenido del registro Rn son lógicamente exclusivos.

Datos XRL,A ; El contenido de la unidad de dirección directa se XOR lógicamente con el contenido del acumulador A. Los resultados se almacenan en ubicaciones de dirección directa.

XRL A,@Ri ; El contenido del acumulador A y el contenido de la unidad de dirección apuntada por el registro de trabajo Ri realizan una operación OR lógica exclusiva. El resultado se almacena en el acumulador A

Análisis de instrucciones de transferencia de control

[1]. Instrucciones de transferencia incondicionales (4)

LJMP addr16→ (PC). ), asigna un nuevo valor al contador del programa (dirección de 16 bits)

AJMP addr11; (PC)+2→(PC), addr11→(PC10-0) Asigna un nuevo valor al programa contador (dirección de 11 bits), (PC15-11) sin cambios

SJMP rel; (PC)+2+rel→(PC) El contador del programa actual se incrementa en 2 primero y luego se realiza el desplazamiento. agregado al contador del programa, dando Nuevo valor

JMP @A+DPTR;(A)+ (DPTR)→(PC), el valor de la unidad de dirección apuntada por el acumulador se suma al valor del puntero de datos y se asigna un nuevo valor al contador del programa

p>

[2]. Instrucción de transferencia condicional (8)

JZ rel; ) + 2 + rel → (PC), el contenido del acumulador es 0, luego transfiéralo a La dirección señalada por el desplazamiento; de lo contrario, el programa falla

JNZ A≠0, (PC) + 2; + rel → (PC), si el contenido del acumulador no es 0, vaya al desplazamiento La dirección señalada; de lo contrario, el programa deja de ejecutarse

JNZ A≠0, (PC)+2; +rel → (PC), el contenido del acumulador no es 0, luego vaya al desplazamiento apuntado a la dirección. dirección, de lo contrario el programa deja de ejecutarse

CJNE A, data, rel; A≠(data),(PC)+ 3 + rel→(PC), el contenido del acumulador no es igual al contenido. de la unidad de dirección directa, luego vaya a la dirección señalada por el desplazamiento; de lo contrario, el programa deja de ejecutarse

CJNE A, #data, rel; A≠# data, (PC) + 3 + rel → ( PC), en el acumulador Si el contenido no es igual al valor inmediato, vaya a la dirección señalada por el offset, de lo contrario el programa bajará

CJNE Rn, #data, rel; datos, (PC) + 3 + rel → (PC), si el contenido en el registro de trabajo Rn no es igual al valor inmediato, vaya a la dirección señalada por el desplazamiento.

Si el contenido de la unidad de dirección señalada por el registro de trabajo Ri no es igual al valor inmediato, vaya a la dirección señalada por el desplazamiento; de lo contrario, el programa deja de ejecutarse

CJNE @Ri, #data, rel ; A≠#data, (PC) + 3 + rel → (PC), el contenido en la unidad de dirección señalada por el registro de trabajo Ri no es igual al valor inmediato, luego se transfiere a la dirección señalada por el desplazamiento, de lo contrario, el programa deja de ejecutarse

Análisis de instrucciones de operación de variables booleanas

[1] Instrucciones de transferencia de bits (2)

MOV C,bit ;bit→CY, transferir un bit de datos a CY

bit MOV,C ;CY→bit, transferir datos CY a un bit

[2]. >

CLR C ;0→CY, borrar CY

bit CLR; 0→bit, borrar un bit

SETB C;

Bit SETB; 1→bit, establecer un bit

[3]. Instrucciones de operación de bits (6)

ANL C,bit ;(CY)∧(bit)→ CY

ANL C,/bit ;(CY)∧( )→CY

ORL C,bit ;(CY)∨(bit)→CY

ORL C,/bit ;(CY)∧()→ CY

CPL C ;()→CY

CPL bit ;()→bir

[ 4].Instrucción de transferencia de control de bits (5)

JC rel; (CY)=1 transmisión, (PC)+2+rel→PC; de lo contrario, el programa se ejecuta hacia abajo, (PC)+2→PC. .

JNC rel; (CY)=0 transmisión, (PC)+2+rel→PC, de lo contrario el programa se ejecuta hacia abajo, (PC)+2→PC.

Bit JB, rel; el estado del bit es 1 transferencia.

Bit JNB, rel; estado del bit 0 transmitido.

Bit JBC, rel; cuando el estado del bit cambia a 1, el bit se borra a "0".