Red de conocimiento informático - Conocimiento sistemático - ¿Cuáles son todas las instrucciones en lenguaje ensamblador en el microcontrolador 51?

¿Cuáles son todas las instrucciones en lenguaje ensamblador en el microcontrolador 51?

Lista de funciones de instrucción del microcontrolador

Descripción del código mnemotécnico

MOV A, Rn E8~EF registro A

MOV A, directo E5 byte directo directo envía A

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

MOV A, #data 74 datos datos inmediatos envía A

MOV Rn, A F8~FF A se envía al registro

MOV Rn, dircet A8~AF dircet se envía directamente al registro

MOV Rn, #data 78~7F los datos son enviado al registro de datos inmediato

MOV dircet, A F5 dircet A envía bytes directos

MOV dircet, Rn 88~8F el registro dircet envía bytes directos

MOV dircet1, dircet2 85 dircet1 dircet2 byte directo para enviar byte directo

MOV dircet, @Ro 86~87 RAM indirecta para enviar byte directo

MOV dircet, #data 75 dircet datos datos inmediatos para enviar directamente Bytes

MOV @Ri, A F6~F7 A envía RAM indirecta

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

MOV @Ri, #data 76~77 datos datos inmediatos enviados a RAM indirecta

MOV DPTR, #data16 90 datos 15~8 Puntero de datos enviado constante de 16 bits

datos7 ~0

MOVC A, @A DPTR 93 Almacenamiento de programa direccionado por ((A) (DPTR))

Byte de dispositivo seleccionado A

MOVC A, @ A PC 83 Byte de memoria de programa direccionado por ((A) (PC));

Enviar A

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 el byte directamente a la pila, SP aumenta en 1

POP dircet D0 dircet Empuja el byte directamente fuera de la pila, SP disminuye en 1

XCH A, Rn C8~CF Swap A y registros

XCH A, dircet C5 dircet Swap A y bytes directos

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

XCH A, @Ri D6~D7 Intercambia los bits bajos de A y RAM indirecta

SWAP A C4

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

AÑADIR A, el registro Rn 28~2F se añade a A

AÑADIR A, dircet 25 dircet El byte directo se añade a A

AÑADIR A, @Ri Se agrega 26~27 RAM indirecta A

AÑADIR A, #data 24data agrega datos inmediatos a A

AÑADIR A, Rn 38~3F el registro y el bit de acarreo se agregan a A

AÑADIR A, dircet 35dircet El byte directo y el bit de acarreo se añaden a A

AÑADIR A, @Ri 36~37 El byte indirecto y el bit de acarreo se añaden a A

ADD A, el número inmediato de datos de datos 34 y el bit de acarreo se agregan a A

ADD A, Rn 98~9F

A menos el bit de registro y acarreo

AÑADIR A, dircet 95 dircet A menos el byte directo y el bit de acarreo

AÑADIR A, @Ri 36~37 RAM indirecta y bit de acarreo añadidos A A

ADD A, los datos 34, el valor inmediato de los datos y el bit de acarreo se agregan a A

SUBB A, Rn 98~9F A resta el registro y el bit de acarreo

>SUBB A, dircet 95 dircet A menos el byte directo y el bit de acarreo

SUBB A, @Ri 96~97 A menos la RAM indirecta y el bit de acarreo

SUBB A, # datos 94 datos A menos el valor inmediato y el bit de acarreo

INC A 04 A más 1

INC Rn 08~0F Registro más 1

INC dircet 05 dircet Directo byte más 1

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

DEC A 14 A menos 1

DEC Rn 18~1F Registro menos 1

p>

DEC dircet 15 dircet Byte 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 A ajuste de suma decimal

Operaciones lógicas

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

ANL A, dircet 55 dircet recto

Conecte el byte "Y" a A

ANL A, @Ri 56~57 RAm indirecto "Y" a A

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

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

ANL dircet, #data 53 dircet datos "Y" número inmediato al byte directo

ORL A, Rn 48~4F Registro OR a A

ORL A, dircet 45 dircet Byte directo OR a A

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

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

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

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

XRL A, Rn 68~6F registra "XOR" a A

XRL A, dircet 65 dircet Byte directo "XOR" a A

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

XRL A, #data 64 datos "XOR" datos inmediatos a A

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

XRL dircet, #data 63 dircet datos inmediatos "XOR" al byte directo

CLR A E4 clear

CPL A F4 A negar

RL A 23 A desplazamiento circular hacia la izquierda

RLC A 33 A gira hacia la izquierda mediante transporte

RR A 03 A

Desplazamiento circular hacia la derecha

RRC A 13 Un desplazamiento circular hacia la derecha mediante acarreo

Transferencia de programa de control

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

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

addr(7~0)

RET 22 devolución de llamada de subrutina

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

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

Dirección LJMP 16 02dirección(15~8) transferencia larga

addr(7~0)

SJMP rel 80 rel transferencia corta, transferencia relativa

JMP @A DPTR 73 transferencia indirecta relativa a DPTR

JZ rel 60 rel A es transferencia cero

JNZ rel 70 rel A es transferencia cero

CJNE A, dircet, rel B5 dircet rel comparación directa de bytes con A, no igual Luego transferir

CJNE A, #data, rel B4 data rel Compara los datos inmediatos con A, transfiérelo si no es igual

CJNE A, Rn, #data, rel B8~BF data rel Compara el valor inmediato con el registro y transferir si no es igual

CJNE @Ri, #data, rel B6~B7 data rel Comparar el número inmediato con la RAM indirecta y transferir si no es igual

DJNZ Rn , rel D8~DF rel Disminuye el registro en 1 y transfiere si no es cero

DJNZ dircet, rel B5 dircet rel Disminuye el byte directo en 1 y transfiere si no es cero cero

NOP 00 operación vacía

*=a10a9a8l

△=a10a9a80

Operación de variable booleana

CLR C C3 borrar acarreo

CLR el bit C2 borra el bit directo

SETB C D3 establece el acarreo

El bit SETB D2 establece el bit directo

CPL C B3 invierte el acarreo

>

CPL bit B2 inversión directa de bits

ANL C, bit 82 dit número directo "Y" para llevar

ANL C, /bit B0 inversión directa de bits "Y" ” para llevar

ORL C, bit 72 bit bit directo “OR” para llevar

ORL C, /bit A0 bit bit directo “o” para llevar

MOV C, bit A2, lleva directamente al bit de acarreo

Bit MOV, C 92 bits lleva al bit directo

JC rel 40 rel, el bit de acarreo es 1 para transferir

JNC rel 50 rel, bit de acarreo es 0, transferencia

bit JB, rel 20 bits rel, bit directo es 1, transferencia relativa

bit JNB, rel 30 bits, el bit directo rel es 0 de transferencia relativa

bit JBC, el bit rel directo de 10 bits a 1 transferencia relativa, luego borre el bit

[1]. 4)

RL A ; Desplazar el contenido del acumulador A hacia la izquierda una posición

RR A ; Desplazar el contenido del acumulador A hacia la derecha una posición

RLC A ; Acumulador El contenido en A junto con el bit de acarreo CY se desplaza un bit hacia la izquierda

RRC A;

La capacidad y el bit de acarreo CY se desplazan un bit hacia la derecha

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

SWAP A; Intercambio de mordiscos bajos

[3]. Instrucción de negación (1)

CPL A; inversión bit a bit del contenido en el acumulador

[4]. (1)

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

[5].

ANL A, datos; el contenido del acumulador A y el contenido de la unidad de dirección directa realizan operaciones lógicas Y. El resultado se almacena en el registro A.

Datos ANL, #data; realiza operaciones lógicas AND sobre los contenidos y datos inmediatos en la unidad de dirección directa. Los resultados se almacenan en ubicaciones de dirección directa.

ANL A, #data; realiza la operación lógica AND sobre el contenido del acumulador A y los datos inmediatos. El resultado se almacena en el acumulador A.

ANL A, Rn; El contenido del acumulador A y el contenido del registro Rn realizan operaciones lógicas AND. El resultado se almacena en el acumulador A.

Datos ANL, A; realizar operaciones lógicas AND sobre el contenido de la unidad de dirección directa y el contenido del acumulador A. Los resultados se almacenan en ubicaciones de 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 AND. El resultado se almacena en el acumulador A.

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

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

ORL A, datos; el contenido del acumulador A y el contenido de la unidad de dirección directa realizan una operación OR lógica. El resultado se almacena en el registro A.

Datos ORL, #data; realiza una operación OR lógica sobre el contenido de la unidad de dirección directa y el valor inmediato. Los resultados se almacenan en ubicaciones de dirección directa.

ORL A, #data; El contenido del acumulador A y el valor inmediato realizan una operación lógica OR. El resultado se almacena en el acumulador A.

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

Datos ORL, A; El contenido de la unidad de dirección directa y el contenido del acumulador A realizan una operación OR lógica. Los resultados se almacenan en ubicaciones de dirección directa.

ORL 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 OR. El resultado se almacena en el acumulador A.

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

XRL A, datos; el contenido en el acumulador A y el contenido en la unidad de dirección directa realizan una operación XOR lógica. El resultado se almacena en el registro A.

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

XRL A, #data; El contenido del acumulador A y el valor inmediato realizan una operación XOR lógica. El resultado se almacena en el acumulador A.

XRL A, Rn; El contenido del acumulador A y el contenido del registro Rn realizan una operación OR lógica exclusiva. El resultado se almacena en el acumulador A.

Datos XRL, A; el contenido de la unidad de dirección directa y el contenido del acumulador A realizan una operación OR lógica exclusiva. 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 lógica OR 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 (dirección de 16 bits) al contador del programa

AJMP addr11; (PC) 2→(PC), addr11→(PC10-0) asigna un nuevo valor (11 bits) dirección) al contador del programa, (PC15-11) Sin cambios

SJMP rel; (PC) 2 rel→(PC) Primero agregue 2 al contador del programa actual y luego agregue el desplazamiento para asignar un nuevo valor al contador del programa

JMP @A DPTR (A) (DPTR) → (PC), el valor de la unidad de dirección apuntada por el acumulador más el valor del puntero de datos asigna un nuevo valor al contador del programa

[2]. Instrucciones de transferencia de condición (8 elementos)

JZ rel; (PC) 2 rel→(PC), si el contenido está en el acumulador es 0, luego transfiéralo a la dirección señalada por el desplazamiento; de lo contrario, el programa se ejecuta hacia abajo

JNZ rel; no es 0, entonces se transferirá a la dirección señalada por el desplazamiento; de lo contrario, el programa Ejecutar hacia abajo

CJNE A, data, rel A≠(data), (PC) 3 rel→(PC; ), el contenido en el acumulador no es igual al contenido de la unidad de dirección directa, luego se transfiere al desplazamiento La dirección apuntada por el desplazamiento; de lo contrario, el programa se ejecutará hacia abajo

CJNE A, #data, rel; A≠#data, (PC) 3 rel→ (PC), el contenido en el acumulador no es igual al número inmediato, luego transfiéralo a la dirección señalada por el desplazamiento; de lo contrario, el programa continúa ejecutándose

CJNE Rn, #data, rel; A≠#data, (PC) 3 rel→ (PC), registro de trabajo Si el contenido en Rn no es igual al número inmediato, se transferirá a la dirección señalada por el desplazamiento, de lo contrario el programa se ejecutará hacia abajo

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 continúa ejecutando

Análisis de instrucciones de operación de variable booleana

p>

[1]. Instrucciones de transferencia de bits (2)

MOV C, bit; bit→CY, un determinado bit de datos se envía a CY

MOV bit, C →bit; , Los datos de CY se envían a un determinado bit

[2]. Instrucciones de restablecimiento de bits (4)

CLR C; bit; 0→bit, borra un determinado bit

SETB C; 1→CY, establece CY

SETB bit, establece un determinado 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

bit CPL

;()→bir

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

JC rel; (CY)=1 transferencia, (PC) 2 rel→PC, de lo contrario el programa Ejecutar hacia abajo, (PC) 2→PC.

JNC rel; (CY)=0 transferencia, (PC) 2 rel→PC, de lo contrario el programa se ejecutará hacia abajo, (PC) 2→PC.

Bit JB, rel; el estado del bit se transfiere a 1.

Bit JNB, rel; el estado del bit se transfiere a 0.

Bit JBC, rel; transfiere el estado del bit a 1 y borra el bit a "0".