Download - 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