Todas las instrucciones para 51 microcontroladores
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 p>
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 p>
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".