8051 Del Conjunto de Instrucciones

40
8051 del conjunto de instrucciones: ACALL Operació n: ACALL Función: Llamar Absoluto Dentro 2K Bloquear Sintaxis : ACALL dirección de código Instruccione s OpCode Byte s Bandera s ACALL page0 0x11 2 Ninguno ACALL page1 0x31 2 Ninguno ACALL page2 0x51 2 Ninguno ACALL page3 0x71 2 Ninguno ACALL page4 0x91 2 Ninguno ACALL page5 0xB1 2 Ninguno ACALL page6 0xD1 2 Ninguno ACALL página 7 0xf1 2 Ninguno Descripción: ACALL llama incondicionalmente una subrutina en la indicada dirección de código . ACALL empuja la dirección de la instrucción que sigue ACALL en la pila, menos significativo-byte primero, segundo más significativo bytes. El contador de programa es entonces actualizada de forma que la ejecución del programa continúa en la dirección indicada. El nuevo valor del contador de programa se calcula mediante la sustitución de la significativa-byte menos del contador de programa con el segundo byte de la instrucción ACALL, y la sustitución de los bits 0-2 de

description

INSTRUCCIONES DEL 8051

Transcript of 8051 Del Conjunto de Instrucciones

8051 del conjunto de instrucciones: ACALLOperacin:ACALL

Funcin:Llamar Absoluto Dentro 2K Bloquear

Sintaxis:ACALLdireccin de cdigo

InstruccionesOpCodeBytesBanderas

ACALLpage00x112Ninguno

ACALLpage10x312Ninguno

ACALLpage20x512Ninguno

ACALLpage30x712Ninguno

ACALLpage40x912Ninguno

ACALLpage50xB12Ninguno

ACALLpage60xD12Ninguno

ACALLpgina 70xf12Ninguno

Descripcin:ACALL llama incondicionalmente una subrutina en la indicadadireccin de cdigo.ACALL empuja la direccin de la instruccin que sigue ACALL en la pila, menos significativo-byte primero, segundo ms significativo bytes.El contador de programa es entonces actualizada de forma que la ejecucin del programa contina en la direccin indicada.El nuevo valor del contador de programa se calcula mediante la sustitucin de la significativa-byte menos del contador de programa con el segundo byte de la instruccin ACALL, y la sustitucin de los bits 0-2 de la significativa-byte ms del contador de programa con 3 bits que indican la pgina.Los bits 3-7 de la significativa-byte ms del contador de programa permanecen unchaged.Desde slo 11 bits del contador de programa se ven afectados por ACALL, las llamadas slo se pueden hacer a las rutinas ubicados dentro del mismo bloque de 2k como el primer byte que sigue ACALL.

8051 del conjunto de instrucciones: ADDOperacin:ADD, ADDC

Funcin:Aadir Acumulador, Aadir Acumulador Con Carry

Sintaxis:AADIR A,operando

ADDC A,operando

InstruccionesOpCodeBytesBanderas

AADIR A, #de datos0x242C, AC, OV

AADIR A,addr IRAM0x252C, AC, OV

AADIR A, @ R00x261C, AC, OV

AADIR A, @ R10x271C, AC, OV

AADIR A, R00x281C, AC, OV

AADIR A, R10x291C, AC, OV

AADIR A, R20x2A1C, AC, OV

AADIR A, R30x2B1C, AC, OV

AADIR A, R40x2C1C, AC, OV

AADIR A, R50x2D1C, AC, OV

AADIR A, R60x2E1C, AC, OV

AADIR A, R70x2F1C, AC, OV

InstruccionesOpCodeBytesBanderas

ADDC A, #de datos0x342C, AC, OV

ADDC A,addr IRAM0x352C, AC, OV

ADDC A, @ R00x361C, AC, OV

ADDC A, @ R10x371C, AC, OV

ADDC A, R00x381C, AC, OV

ADDC A, R10x391C, AC, OV

ADDC A, R20x3A1C, AC, OV

ADDC A, R30x3B1C, AC, OV

ADDC A, R40x3C1C, AC, OV

ADDC A, R50x3D1C, AC, OV

ADDC A, R60x3E1C, AC, OV

ADDC A, R70x3F1C, AC, OV

Descripcin:Descripcin: ADD y ADDC tanto aadir el valordel operandoal valor del acumulador, dejando el valor resultante en el acumulador.El valorde operandono se ve afectada.ADD y funcin ADDC idntica, excepto que ADDC suma el valor del operando, as como el valor de la bandera de acarreo mientras ADD no agrega la bandera de acarreo para el resultado.Elbit de acarreo (C)se establece si existe un remanente de poco 7. En otras palabras, si el valor sin signo sumado del Acumulador,operandoy (en el caso de ADDC) la bandera de acarreo supera 255 Carry se establece.De lo contrario, el bit de acarreo se borra.ElCarry Auxillary (AC)bit se establece si hay un remanente de poco 3. En otras palabras, si el valor sin signo sumado del nibble bajo del acumulador,operandoy (en el caso de ADDC) la bandera de acarreo excede 15 la bandera de acarreo Auxillary se establece.De lo contrario, la bandera de acarreo Auxillary se borra.Eldesbordamiento (OV)bit se establece si hay un acarreo de salida de bit 6 o fuera de bit 7, pero no ambos.En otras palabras, si la adicin del acumulador,operandoy (en el caso de ADDC) la bandera de acarreo tratado como valores firmados resultados en un valor que est fuera de la gama de un byte con signo (-128 a travs de 127) el desbordamiento indicador est establecido.De lo contrario, la bandera de desbordamiento se borra.

8051 del conjunto de instrucciones: AJMPOperacin:AJMP

Funcin:Salto Absoluto Dentro 2K Bloquear

Sintaxis:AJMPdireccin de cdigo

InstruccionesOpCodeBytesBanderas

AJMPpage00x012Ninguno

AJMPpage10x212Ninguno

AJMPpage20x412Ninguno

AJMPpage30x612Ninguno

AJMPpage40x812Ninguno

AJMPpage50xA12Ninguno

AJMPpage60xC12Ninguno

AJMPpgina 70xE12Ninguno

DIRECCION : http://www.win.tue.nl/~aeb/comp/8051/set8051.html#51xrl

Descripcin:AJMP salta incondicionalmente a la indicadadireccin de cdigo.El nuevo valor del contador de programa se calcula mediante la sustitucin de la significativa-byte menos del contador de programa con el segundo byte de la instruccin AJMP, y la sustitucin de los bits 0-2 de la significativa-byte ms del contador de programa con 3 bits que indican la pginadel byte siguiendo las instrucciones AJMP.Los bits 3-7 de la significativa-byte ms del contador de programa permanecen unchaged.Desde slo 11 bits del contador de programa se ven afectados por AJMP, saltos slo pueden efectuarse al cdigo situado dentro del mismo bloque de 2k como el primer byte que sigue AJMP.

8051 del conjunto de instrucciones: ANLOperacin:ANL

Funcin:AND bit a bit

Sintaxis:ANLoperando1,operando2

InstruccionesOpCodeBytesBanderas

ANLaddr IRAM, A0x522Ninguno

ANLIRAM addr, #de datos0x533Ninguno

ANL A, #de datos0x542Ninguno

ANL A,addr IRAM0x552Ninguno

ANL A, @ R00x561Ninguno

ANL A, @ R10x571Ninguno

ANL A, R00x581Ninguno

ANL A, R10x591Ninguno

ANL A, R20x5A1Ninguno

ANL A, R30x5b1Ninguno

ANL A, R40x5C1Ninguno

ANL A, R50x5D1Ninguno

ANL A, R60x5E1Ninguno

ANL A, R70x5F1Ninguno

ANL C,poco addr0x822C

ANL C, /poco addr0xB02C

Descripcin:ANL hace un bit a bit "AND" entreoperando1yoperando2, dejando el valor resultante enoperando1.El valor de operando2 no se ve afectada.Una lgica "Y", compara los bits de cada operando y establece el bit correspondiente en el byte resultante slo si el bit se establece en los dos operandos originales, de lo contrario el bit resultante se borra.Vea tambin:ORL,XRL

8051 del conjunto de instrucciones: CJNEOperacin:CJNE

Funcin:Compara y Jump si no igual

Sintaxis:CJNEoperando1,operando2,reladdr

InstruccionesOpCodeBytesBanderas

CJNE A, #de datos,reladdr0xB43C

CJNE A,addr IRAM,reladdr0xB53C

CJNE @ R0, #de datos,reladdr0xB63C

CJNE @ R1, #de datos,reladdr0xB73C

CJNE R0, #de datos,reladdr0xB83C

CJNE R1, #de datos,reladdr0xB93C

CJNE R2, #de datos,reladdr0xBA3C

CJNE R3, #de datos,reladdr0xBB3C

CJNE R4, #de datos,reladdr0xBC3C

CJNE R5, #de datos,reladdr0xBD3C

CJNE R6, #de datos,reladdr0xBE3C

CJNE R7, #de datos,reladdr0xBF3C

Descripcin:CJNE compara el valor deoperando1yoperando2y ramas a la direccin relativa indicado sioperando1yoperando2no son iguales.Si los dos operandos son iguales flujo del programa contina con la instruccin siguiente a la instruccin CJNE.Elbit de acarreo (C)se establece sioperando1es menor queoperando2, de lo contrario se restablece.Vea tambin:DJNZ

8051 del conjunto de instrucciones: CLROperacin:CLR

Funcin:Borrar Registro

Sintaxis:CLRregistro

InstruccionesOpCodeBytesBanderas

CLRpoco addr0xC22Ninguno

CLR C0xC31C

CLR A0xE41Ninguno

Descripcin:Borra CLR (sets a 0) Todos los bits (s) de registro indicado.Si el registro es un poco (incluyendo el bit de acarreo), slo el bit especificado se ve afectada.Borrado del acumulador establece el valor del acumulador a 0.Vea tambin:SETB

8051 del conjunto de instrucciones: CPLOperacin:CPL

Funcin:Complementar Registro

Sintaxis:CPLoperando

InstruccionesOpCodeBytesBanderas

CPL A0xF41Ninguno

CPL C0xB31C

CPLpoco addr0xB22Ninguno

Descripcin:CPL complementaoperando, dejando el resultado enel operando.Siel operandoes un solo bit, entonces se invierte el estado del bit.Siel operandoes el Acumulador entonces se invertirn todos los bits en el acumulador.Esto puede ser pensado como "acumulador lgico O exclusivo 255" o como "255-acumulador."Si eloperandose refiere a un poco de un puerto de salida, el valor que se complementar se basa en el ltimo valor escrito en que poco, no el ltimo valor ledo de l.Vea tambin:CLR,SETB

8051 del conjunto de instrucciones: DAOperacin:DA

Funcin:Decimal Ajuste Acumulador

Sintaxis:DA A

InstruccionesOpCodeBytesBanderas

DA0xD41C

Descripcin:DA ajusta el contenido del acumulador a corresponder a un nmero BCD (Binary Coded Decimal) despus de dos nmeros BCD se han aadido por el ADD o instruccin ADDC.Si el bit de acarreo se activa o si el valor de los bits 0-3 exceda 9, se aade 0x06 al acumulador.Si el bit de acarreo se establece cuando comenz la instruccin, o si 0x06 esta en el acumulador en el primer paso, 0x60 se aade al acumulador.Elbit de acarreo (C)se establece si el valor resultante es mayor que 0x99, si no se borra.Vea tambin:ADD,ADDC

8051 del conjunto de instrucciones: diciembreOperacin:Diciembre

Funcin:Disminuye el Registro

Sintaxis:Diciembreregistro

InstruccionesOpCodeBytesBanderas

A diciembre0x141Ninguno

DiciembreIRAM addr0x152Ninguno

Diciembre @ R00x161Ninguno

Diciembre @ R10x171Ninguno

Diciembre R00x181Ninguno

Diciembre R10x191Ninguno

Diciembre R20x1A1Ninguno

Diciembre R30x1B1Ninguno

Diciembre R40x1C1Ninguno

Diciembre R50x1D1Ninguno

Diciembre R60x1E1Ninguno

Diciembre R70x1F1Ninguno

Descripcin:diciembre decrementa el valor deregistroen 1. Si el valor inicial delregistroes 0, decrementando el valor har que se restablece a 255 (0xFF Hex).Nota: El indicador de acarreo no se establece cuando el valor "da la vuelta" de 0 a 255.Vea tambin:INC,SUBB

8051 del conjunto de instrucciones: DIVOperacin:DIV

Funcin:Divida Acumulador por B

Sintaxis:DIV AB

InstruccionesOpCodeBytesBanderas

DIV AB0x841C, OV

Descripcin:Divide el valor sin signo del acumulador por el valor sin signo del registro "B".El cociente resultante se coloca en el acumulador y el resto se coloca en el registro "B".Labandera de acarreo (C)siempre se restablece.Labandera de desbordamiento (OV)se establece si se intent la divisin por 0, de lo contrario se restablece.Vea tambin:MUL AB

8051 del conjunto de instrucciones: DJNZOperacin:DJNZ

Funcin:Disminuir y Saltar si es cero

Sintaxis:DJNZregistro,reladdr

InstruccionesOpCodeBytesBanderas

DJNZIRAM addr,reladdr0xD53Ninguno

DJNZ R0,reladdr0xd82Ninguno

DJNZ R1,reladdr0xD92Ninguno

DJNZ R2,reladdr0xDA2Ninguno

DJNZ R3,reladdr0xDB2Ninguno

DJNZ R4,reladdr0xDC2Ninguno

DJNZ R5,reladdr0xdd2Ninguno

DJNZ R6,reladdr0xDE2Ninguno

DJNZ R7,reladdr0xDF2Ninguno

Descripcin:DJNZ decrementa el valor deregistroen 1. Si el valor inicial delregistroes 0, decrementando el valor har que se restablece a 255 (0xFF Hex).Si el nuevo valor deregistrono es 0 el programa se bifurcar a la direccin indicada poraddr relativa.Si el nuevo valor delregistroes 0 el flujo del programa contina con la instruccin siguiente a la instruccin DJNZ.Vea tambin:diciembre,JZ,JNZ

8051 del conjunto de instrucciones: INCOperacin:INC

Funcin:Incrementa el Registro

Sintaxis:INCregistro

InstruccionesOpCodeBytesBanderas

INC A0x041Ninguno

INCIRAM addr0x052Ninguno

INC @ R00x061Ninguno

INC @ R10x071Ninguno

INC R00x081Ninguno

INC R10x091Ninguno

INC R20x0A1Ninguno

INC R30x0B1Ninguno

INC R40x0C1Ninguno

INC R50x0D1Ninguno

INC R60x0E1Ninguno

INC R70x0F1Ninguno

INC DPTR0xA31Ninguno

Descripcin:INC incrementa el valor deregistroen 1. Si el valor inicial delregistroes 255 (0xFF Hex), incrementando el valor har que se restablece a 0. Nota: El indicador de acarreo no se establece cuando el valor "da la vuelta" 255-0.En el caso de "INC DPTR", el valor de dos bytes valor entero sin signo de DPTR se incrementa.Si el valor inicial de DPTR es 65535 (0xFFFF Hex), incrementando el valor har que se restablece a 0. Una vez ms, el indicador de acarreo no se establece cuando el valor de DPTR "da la vuelta" 65535-0.Vea tambin:ADD,ADDC,diciembre

8051 del conjunto de instrucciones: JBOperacin:JB

Funcin:Saltar si el bit se establece

Sintaxis:JBpoco addr,reladdr

InstruccionesOpCodeBytesBanderas

JBpoco addr,reladdr0x203Ninguno

Descripcin:JB ramas a la direccin indicada porreladdrsi el bit indicado porpoco addrest establecido.Si el bit no se establece la ejecucin del programa contina con la instruccin siguiente a la instruccin de JB.Vea tambin:JBC,JNB

8051 del conjunto de instrucciones: JBCOperacin:JBC

Funcin:Saltar si Bit Set y Clear Bit

Sintaxis:JBpoco addr,reladdr

InstruccionesOpCodeBytesBanderas

JBCpoco addr,reladdr0x103Ninguno

Descripcin:JBC se bifurcar a la direccin indicada porreladdrsi el bit indicado porpoco addrest establecido.Antes de ramificacin areladdrla instruccin, se borrar el bit indicado.Si el bit no se establece la ejecucin del programa contina con la instruccin siguiente a la instruccin JBC.Vea tambin:JB,JNB

8051 del conjunto de instrucciones: JCOperacin:JC

Funcin:Saltar si Llevar Set

Sintaxis:JCreladdr

InstruccionesOpCodeBytesBanderas

JCreladdr0x402Ninguno

Descripcin:JC se bifurcar a la direccin indicada porreladdrsi el bit de acarreo est establecido.Si el bit de acarreo no se establece la ejecucin del programa contina con la instruccin siguiente a la instruccin de JC.Vea tambin:JNC

8051 del conjunto de instrucciones: JMPOperacin:JMP

Funcin:Saltar al puntero de datos + Acumulador

Sintaxis:JMP @ A + DPTR

InstruccionesOpCodeBytesBanderas

JMP @ A + DPTR0x731Ninguno

Descripcin:JMP salta incondicionalmente a la direccin representada por la suma del valor de DPTR y el valor del acumulador.Vea tambin:LJMP,AJMP,SJMP

8051 del conjunto de instrucciones: JNBOperacin:JNB

Funcin:Saltar si Bit no activado

Sintaxis:JNBpoco addr,reladdr

InstruccionesOpCodeBytesBanderas

JNBpoco addr,reladdr0x303Ninguno

Descripcin:JNB se bifurcar a la direccin indicada porreladdresssi el bit indicado no est establecido.Si el bit se establece la ejecucin del programa contina con la instruccin siguiente a la instruccin JNB.Vea tambin:JB,JBC

8051 del conjunto de instrucciones: JNCOperacin:JNC

Funcin:Saltar si llevamos no Set

Sintaxis:JNCreladdr

InstruccionesOpCodeBytesBanderas

JNCreladdr0x502Ninguno

Descripcin:ramas JNC a la direccin indicada porreladdrsi el bit de acarreo no est establecido.Si el bit de acarreo se establece la ejecucin del programa contina con la instruccin siguiente a la instruccin JNB.Vea tambin:JC

8051 del conjunto de instrucciones: JNZOperacin:JNZ

Funcin:Saltar si Acumulador No Cero

Sintaxis:JNZreladdr

InstruccionesOpCodeBytesBanderas

JNZreladdr0x702Ninguno

Descripcin:JNZ se bifurcar a la direccin indicada porreladdrsi el acumulador contiene ningn valor excepto 0. Si el valor del acumulador es la ejecucin del programa cero contina con la instruccin siguiente a la instruccin JNZ.Vea tambin:JZ

8051 del conjunto de instrucciones: JZOperacin:JZ

Funcin:Saltar si Acumulador Zero

Sintaxis:JNZreladdr

InstruccionesOpCodeBytesBanderas

JZreladdr0x602Ninguno

Descripcin:ramas JZ a la direccin indicada porreladdrsi el acumulador contiene el valor 0. Si el valor del acumulador es la ejecucin del programa que no sea cero contina con la instruccin siguiente a la instruccin JNZ.Vea tambin:JNZ

8051 del conjunto de instrucciones: LCALLOperacin:LCALL

Funcin:Long Call

Sintaxis:LCALLcdigo addr

InstruccionesOpCodeBytesBanderas

LCALLcdigo addr0x123Ninguno

Descripcin:LCALL llama a una subrutina del programa.LCALL incrementa el contador de programa 3 (a punto a la instruccin siguiente LCALL) y empuja a ese valor en la pila (byte bajo primero, segundo byte alto).El contador de programa se ajusta entonces al valor de 16 bits que sigue el cdigo de operacin LCALL, provocando la ejecucin del programa para continuar en esa direccin.Vea tambin:ACALL,RET

8051 del conjunto de instrucciones: LJMPOperacin:LJMP

Funcin:Salto de longitud

Sintaxis:LJMPcdigo addr

InstruccionesOpCodeBytesBanderas

LJMPcdigo addr0x023Ninguno

Descripcin:LJMP salta incondicionalmente a la especificadaaddr cdigo.Vea tambin:AJMP,SJMP,JMP

8051 del conjunto de instrucciones: MOVOperacin:MOV

Funcin:Memoria Move

Sintaxis:MOVoperando1,operando2

InstruccionesOpCodeBytesBanderas

MOV @ R0, #de datos0x762Ninguno

MOV @ R1, #de datos0x772Ninguno

MOV @ R0, A0xF61Ninguno

MOV @ R1, A0xF71Ninguno

MOV @ R0,IRAM addr0xA62Ninguno

MOV @ R1,IRAM addr0xA72Ninguno

MOV A, #de datos0x742Ninguno

MOV A, @ R00xE61Ninguno

MOV A, @ R10xE71Ninguno

MOV A, R00xE81Ninguno

MOV A, R10xE91Ninguno

MOV A, R20xEA1Ninguno

MOV A, R30xEB1Ninguno

MOV A, R40xEC1Ninguno

MOV A, R50xED1Ninguno

MOV A, R60xEE1Ninguno

MOV A, R70xEF1Ninguno

MOV A,addr IRAM0xE52Ninguno

MOV C,poco addr0xA22C

MOV DPTR, #Data160x903Ninguno

MOV R0, #de datos0x782Ninguno

MOV R1, #de datos0x792Ninguno

MOV R2, #de datos0x7A2Ninguno

MOV R3, #de datos0x7B2Ninguno

MOV R4, #de datos0x7C2Ninguno

MOV R5, #de datos0x7D2Ninguno

MOV R6, #de datos0x7E2Ninguno

MOV R7, #de datos0x7F2Ninguno

MOV R0, A0xF81Ninguno

MOV R1, A0xF91Ninguno

MOV R2, A0xFA1Ninguno

MOV R3, A0xFB1Ninguno

MOV R4, A0xFC1Ninguno

MOV R5, A0xFD1Ninguno

MOV R6, A0xFE1Ninguno

MOV R7, A0xFF1Ninguno

MOV R0,addr IRAM0xA82Ninguno

MOV R1,addr IRAM0xa92Ninguno

MOV R2,addr IRAM0xAA2Ninguno

MOV R3,addr IRAM0xAB2Ninguno

MOV R4,addr IRAM0xAC2Ninguno

MOV R5,addr IRAM0xAD2Ninguno

MOV R6,addr IRAM0xAE2Ninguno

MOV R7,addr IRAM0xAF2Ninguno

MOVaddr poco, C0x922Ninguno

MOVIRAM addr, #de datos0x753Ninguno

MOVIRAM addr, @ R00x862Ninguno

MOVIRAM addr, @ R10x872Ninguno

MOVaddr IRAM, R00x882Ninguno

MOVaddr IRAM, R10x892Ninguno

MOVaddr IRAM, R20x8A2Ninguno

MOVaddr IRAM, R30x8B2Ninguno

MOVaddr IRAM, R40x8C2Ninguno

MOVaddr IRAM, R50x8D2Ninguno

MOVaddr IRAM, R60x8E2Ninguno

MOVaddr IRAM, R70x8F2Ninguno

MOVaddr IRAM, A0xF52Ninguno

MOVIRAM dir,dir IRAM0x853Ninguno

Descripcin:MOV copia el valor deoperando2enoperando1.El valor deoperando2no se ve afectada.Tantooperando1yoperando2deben estar en la memoria RAM interna.No hay banderas se ven afectados a menos que la instruccin se est moviendo el valor de un bit en el bit de acarreo en cuyo caso el bit de acarreo se ve afectada o menos que la instruccin se est moviendo un valor en el registro PSW (que contiene todas las banderas de programa).** Nota: En el caso de "addr IRAM MOV, IRAM dir", los bytes del operando de la instruccin se almacenan en orden inverso.Es decir, la instruccin que consiste en los bytes 0x85, 0x20, 0x50 significa "mover el contenido de la memoria RAM interna ubicacin 0x20 a RAM interna ubicacin 0x50" mientras que lo contrario se presume generalmente.Vea tambin:MOVC,MOVX,XCH,XCHD,EMPUJE,POP

8051 del conjunto de instrucciones: MOVCOperacin:MOVC

Funcin:Mueva Cdigo Byte al Acumulador

Sintaxis:MOVC A, @ A +registro

InstruccionesOpCodeBytesBanderas

MOVC A, @ A + DPTR0x931Ninguno

MOVC A, @ A + PC0x831Ninguno

Descripcin:MOVC mueve un byte de memoria de cdigo en el acumulador.La direccin de memoria de cdigo de la que se mover el byte se calcula sumando el valor del acumulador, ya sea con DPTR o el contador de programa (PC).En el caso del contador de programa, PC se incrementa en 1 primero antes de ser sumada con el acumulador.Vea tambin:MOV,MOVX

8051 del conjunto de instrucciones: MOVXOperacin:MOVX

Funcin:Mover datos hacia / desde la memoria externa (XRAM)

Sintaxis:MOVXoperando1,operando2

InstruccionesOpCodeBytesBanderas

MOVX @ DPTR, A0xF01Ninguno

MOVX @ R0, A0xF21Ninguno

MOVX @ R1, A0xF31Ninguno

MOVX A, @ DPTR0xE01Ninguno

MOVX A, @ R00xE21Ninguno

MOVX A, @ R10xE31Ninguno

Descripcin:MOVX mueve un byte hacia o desde la memoria externa en o desde el acumulador.Sioperando1esDPTR, el acumulador se mueve a la direccin de memoria externa de 16 bits indicada por DPTR.Esta instruccin usa ambas P0 (puerto 0) y P2 (puerto 2) a la salida de la direccin de 16 bits y datos.Sioperando2es DPTR entonces el byte se mueve de memoria externa en el acumulador.Sioperando1es @ R0 o R1 @, el acumulador se mueve a la direccin de memoria externa de 8 bits indicado por el Registro especificado.Esta instruccin slo utiliza P0 (puerto 0) a la salida de la direccin de 8 bits y los datos.P2 (puerto 2) no se ve afectada.Sioperando2es @ R0 o R1 @ entonces el byte se mueve de memoria externa en el acumulador.Vea tambin:MOV,MOVC

8051 del conjunto de instrucciones: MULOperacin:MUL

Funcin:Multiplique Acumulador por B

Sintaxis:MUL AB

InstruccionesOpCodeBytesBanderas

MUL AB0xA41C, OV

Descripcin:Multiples el valor sin signo del acumulador por el valor sin signo de la "B" Register.El byte menos significativo del resultado se coloca en el acumulador y el byte ms significativo se coloca en la "B" se registra.Elindicador de acarreo (C)siempre se restablece.Labandera de desbordamiento (OV)se establece si el resultado es mayor que 255 (si el byte ms significativo no es cero), de lo contrario se restablece.Vea tambin:DIV

8051 del conjunto de instrucciones: NOPOperacin:NOP

Funcin:Ninguno, perder el tiempo

Sintaxis:No Operacin

InstruccionesOpCodeBytesBanderas

NOP0x001Ninguno

Descripcin:NOP, como su nombre sugiere, provoca sin operacin se lleve a cabo durante un ciclo de la mquina.NOP se utiliza generalmente slo para fines de temporizacin.Absolutamente no hay banderas o registros se ven afectados.

8051 del conjunto de instrucciones: ORLOperacin:ORL

Funcin:OR bit a bit

Sintaxis:ORLoperando1,operando2

InstruccionesOpCodeBytesBanderas

ORLaddr IRAM, A0x422Ninguno

ORLIRAM addr, #de datos0x433Ninguno

ORL A, #de datos0x442Ninguno

ORL A,addr IRAM0x452Ninguno

ORL A, @ R00x461Ninguno

ORL A, @ R10x471Ninguno

ORL A, R00x481Ninguno

ORL A, R10x491Ninguno

ORL A, R20x4A1Ninguno

ORL A, R30x4B1Ninguno

ORL A, R40x4C1Ninguno

ORL A, R50x4D1Ninguno

ORL A, R60x4E1Ninguno

ORL A, R70x4F1Ninguno

ORL C,poco addr0x722C

ORL C, /poco addr0xA02C

Descripcin:ORL hace un "OR" operacin entreoperando1yoperando2, dejando el valor resultante en. operando1El valor deoperando2no se ve afectada.Una lgica "O", compara los bits de cada operando y establece el bit correspondiente en el byte resultante si el bit se establece en cualquiera de los operandos originales, de lo contrario el bit resultante se borra.Vea tambin:ANL,XRL

8051 del conjunto de instrucciones: POPOperacin:POP

Funcin:Pop Valor De Pila

Sintaxis:POP

InstruccionesOpCodeBytesBanderas

POPIRAM addr0xD02Ninguno

Descripcin:POP "aparece" el ltimo valor que se da en la pila en eladdr IRAMespecificado.En otras palabras, POP cargarIRAM addrcon el valor de la direccin de memoria RAM interna que apunta el actual puntero de pila.El puntero de pila es entonces disminuye en 1.Vea tambin:EMPUJE

8051 del conjunto de instrucciones: EMPUJEOperacin:EMPUJAR

Funcin:Empuje valor en la pila

Sintaxis:EMPUJAR

InstruccionesOpCodeBytesBanderas

EMPUJEIRAM addr0xC02Ninguno

Descripcin:PUSH "empuja" el valor de la especificadaaddr IRAMen la pila.EMPUJE primero incrementa el valor del puntero de pila por 1, a continuacin, toma el valor almacenado enaddr IRAMy lo almacena en la memoria RAM interna en el lugar sealado por el incrementado Stack Pointer.Vea tambin:POP

8051 del conjunto de instrucciones: RETOperacin:RET

Funcin:Regreso de la subrutina

Sintaxis:RET

InstruccionesOpCodeBytesBanderas

RET0x221Ninguno

Descripcin:RET se utiliza para devolver desde una subrutina llamada previamente por LCALL o ACALL.La ejecucin del programa contina en la direccin que se calcula haciendo estallar las ms altas 2 bytes de la pila.El byte ms significativo se extrae de la pila primero, seguido por la significativa-byte menos.Vea tambin:LCALL,ACALL,RETI

8051 del conjunto de instrucciones: RETIOperacin:RETI

Funcin:Regreso de la interrupcin

Sintaxis:RETI

InstruccionesOpCodeBytesBanderas

RETI0x321Ninguno

Descripcin:RETI se utiliza para volver de una rutina de servicio de interrupcin.RETI permite primero interrupciones de prioridades iguales e inferiores a la interrupcin que est terminando.La ejecucin del programa contina en la direccin que se calcula haciendo estallar las ms altas 2 bytes de la pila.El byte ms significativo se extrae de la pila primero, seguido por la significativa-byte menos.Funciones RETI idnticamente a RET si se ejecuta fuera de una rutina de servicio de interrupcin.Vea tambin:RET

8051 del conjunto de instrucciones: RLOperacin:RL

Funcin:Rotar acumulador Izquierda

Sintaxis:RL A

InstruccionesOpCodeBytesBanderas

RL A0x231C

Descripcin:Desplaza los bits del acumulador a la izquierda.El bit ms a la izquierda (bit 7) del acumulador se carga en el bit 0.Vea tambin:RLC,RR,RRC

8051 del conjunto de instrucciones: RLCOperacin:RLC

Funcin:Gire Acumulador Izquierda travs Carry

Sintaxis:RLC A

InstruccionesOpCodeBytesBanderas

RLC A0x331C

Descripcin:Desplaza los bits del acumulador a la izquierda.El bit ms a la izquierda (bit 7) del acumulador se carga en el indicador de acarreo, y el indicador de acarreo original se carga en el bit 0 del acumulador.Esta funcin se puede utilizar para multiplicar rpidamente un byte por 2.Vea tambin:RL,RR,RRC

8051 del conjunto de instrucciones: RROperacin:RR

Funcin:Rotar acumulador Derecho

Sintaxis:RR A

InstruccionesOpCodeBytesBanderas

RR A0x031Ninguno

Descripcin:Desplaza los bits del acumulador a la derecha.El bit ms a la derecha (bit 0) del acumulador se carga en el bit 7.Vea tambin:RL,RLC,RRC

8051 del conjunto de instrucciones: RRCOperacin:RRC

Funcin:Gire Acumulador derecha a travs de Carry

Sintaxis:RRC A

InstruccionesOpCodeBytesBanderas

RRC A0x131C

Descripcin:Desplaza los bits del acumulador a la derecha.El bit ms a la derecha (bit 0) del acumulador se carga en el indicador de acarreo, y el indicador de acarreo original se carga en el bit 7. Esta funcin se puede utilizar para dividir rpidamente un byte por 2.Vea tambin:RL,RLC,RR

8051 del conjunto de instrucciones: SETBOperacin:SETB

Funcin:Bit Set

Sintaxis:SETBpoco addr

InstruccionesOpCodeBytesBanderas

SETB C0xD31C

SETBpoco addr0xD22Ninguno

Descripcin:Establece el bit especificado.Vea tambin:CLR

8051 del conjunto de instrucciones: SJMPOperacin:SJMP

Funcin:Corto Jump

Sintaxis:SJMPreladdr

InstruccionesOpCodeBytesBanderas

SJMPreladdr0x802Ninguno

Descripcin:SJMP salta incondicionalmente a la direccin especificadareladdr.Reladdrdebe estar dentro de -128 o 127 bytes de la instruccin que sigue a la instruccin SJMP.Vea tambin:LJMP,AJMP

8051 del conjunto de instrucciones: SUBBOperacin:SUBB

Funcin:Restar de Acumulador Con Borrow

Sintaxis:SUBB A,operando

InstruccionesOpCodeBytesBanderas

SUBB A, #de datos0x942C, AC, OV

SUBB A,addr IRAM0x952C, AC, OV

SUBB A, @ R00x961C, AC, OV

SUBB A, @ R10x971C, AC, OV

SUBB A, R00x981C, AC, OV

SUBB A, R10x991C, AC, OV

SUBB A, R20x9A1C, AC, OV

SUBB A, R30x9B1C, AC, OV

SUBB A, R40x9C1C, AC, OV

SUBB A, R50x9D1C, AC, OV

SUBB A, R60x9E1C, AC, OV

SUBB A, R70x9F1C, AC, OV

Descripcin:SUBB restar el valor deloperandodesde el valor del acumulador, dejando el valor resultante en el acumulador.El valorde operandono se ve afectada.Elbit de acarreo (C)se establece si un prstamo se requiere para el bit 7, de lo contrario se restablece.En otras palabras, si el valor sin signo que se restan es mayor que el acumulador el indicador de acarreo est establecido.ElCarry Auxillary (AC)bit se establece si un prstamo se requiere para el bit 3, de lo contrario se restablece.En otras palabras, el bit se establece si el nibble bajo del valor a restar fue mayor que el nibble bajo del acumulador.Eldesbordamiento (OV)bit se establece si un prstamo se requiere para el bit para el bit 6 o 7, pero no ambos.En otras palabras, la resta de dos bytes firmados result en un valor fuera del rango de un byte con signo (-128 a 127).De lo contrario, se restablece.Vea tambin:ADD,ADDC,diciembre

8051 del conjunto de instrucciones: SWAPOperacin:SWAP

Funcin:Intercambia acumuladores Nibbles

Sintaxis:SWAP A

InstruccionesOpCodeBytesBanderas

SWAP A0xC41Ninguno

Descripcin:swaps SWAP los bits 0-3 del acumulador con los bits 4-7 del acumulador.Esta instruccin es idntica a la ejecucin de "RR A" o "RL A" cuatro veces.Vea tambin:RL,RLC,RR,RRC

8051 del conjunto de instrucciones: Instruccin IndefinidoOperacin:Instruccin Indefinido

Funcin:Indefinido

Sintaxis:???

InstruccionesOpCodeBytesBanderas

???0xA51C

Descripcin:La instruccin "Indefinido" es, como su nombre indica, no una instruccin documentado.El 8051 soporta 255 instrucciones y OpCode 0xA5 es la nica OpCode que no es utilizado por cualquier funcin documentada.Dado que no se documenta ni definido, no se recomienda que se ejecute.Sin embargo, basado en mi investigacin, la ejecucin de esta instruccin indefinido toma 1 ciclo de la mquina y no parece tener un efecto sobre el sistema, excepto que el bit de acarreo siempre parece estar configurado.Nota:Hemos recibido el aporte de un usuario 8052.com que la instruccin no definida realmente tiene un formato deIndefinido bit1, Bit2y copia eficazmente el valor de Bit2 a bit1.En este caso, sera una instruccin de tres bytes.No hemos tenido la oportunidad de verificar o refutar este informe, por lo que presentarlo al mundo como "informacin adicional".Nota:Se ha informado de que Philips 8051 modelo P89C669 utiliza prefijo instruccin 0xA5 para que el usuario accede a una (extendido) rea SFR diferente.

8051 del conjunto de instrucciones: XCHOperacin:XCH

Funcin:Cambio Bytes

Sintaxis:XCH A,regstrese

InstruccionesOpCodeBytesBanderas

XCH A, @ R00xC61Ninguno

XCH A, @ R10xC71Ninguno

XCH A, R00xC81Ninguno

XCH A, R10xC91Ninguno

XCH A, R20xCA1Ninguno

XCH A, R30xCB1Ninguno

XCH A, R40xCC1Ninguno

XCH A, R50xCD1Ninguno

XCH A, R60xCE1Ninguno

XCH A, R70xCF1Ninguno

XCH A,addr IRAM0xC52Ninguno

Descripcin:Intercambia el valor del acumulador con el valor contenido enel registro.Vea tambin:MOV

8051 del conjunto de instrucciones: XCHDOperacin:XCHD

Funcin:Cambio Digit

Sintaxis:XCHD A,[@ R0 / @ R1]

InstruccionesOpCodeBytesBanderas

XCHD A, @ R00xD61Ninguno

XCHD A, @ R10xD71Ninguno

Descripcin:Bolsas de los bits 0-3 del acumulador con los bits 0-3 de la direccin de memoria RAM interna sealaron indirectamente por R0 o R1.Bits 4-7 de cada registro no se ven afectadas.Vea tambin:DA

8051 del conjunto de instrucciones: XRLOperacin:XRL

Funcin:Bitwise OR exclusiva

Sintaxis:XRLoperando1,operando2

InstruccionesOpCodeBytesBanderas

XRLaddr IRAM, A0x622Ninguno

XRLIRAM addr, #de datos0x633Ninguno

XRL A, #de datos0x642Ninguno

XRL A,addr IRAM0x652Ninguno

XRL A, @ R00x661Ninguno

XRL A, @ R10x671Ninguno

XRL A, R00x681Ninguno

XRL A, R10x691Ninguno

XRL A, R20x6A1Ninguno

XRL A, R30x6B1Ninguno

XRL A, R40x6C1Ninguno

XRL A, R50x6D1Ninguno

XRL A, R60x6E1Ninguno

XRL A, R70x6F1Ninguno

Descripcin:XRL hace un bit a bit "O EXCLUSIVO" operacin entreoperando1yoperando2, dejando el valor resultante enoperando1.El valor de operando2 no se ve afectada.Una lgica "O EXCLUSIVO", compara los bits de cada operando y establece el bit correspondiente en el byte resultante si el bit se establece en cualquiera de (pero no ambos) de los operandos originales, de lo contrario el bit se borra.Vea tambin:ANL,ORL