Sie sind auf Seite 1von 29

8051 del conjunto de instrucciones: ACALL

Operacin:
Funcin:
Sintaxis:

ACALL
Llamar Absoluto Dentro 2K Bloquear
ACALL direccin de cdigo

Instrucciones

OpCode

Bytes

Banderas

ACALL page0

0x11

Ninguno

ACALL page1

0x31

Ninguno

ACALL page2

0x51

Ninguno

ACALL page3

0x71

Ninguno

ACALL page4

0x91

Ninguno

ACALL page5

0xB1

Ninguno

ACALL page6

0xD1

Ninguno

ACALL pgina 7

0xf1

Ninguno

Descripcin: ACALL llama incondicionalmente una subrutina en la


indicada direccin 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: ADD


Operacin:

ADD, ADDC

Funcin:
Sintaxis:

Aadir Acumulador, Aadir Acumulador Con Carry


AADIR A, operando
ADDC A, operando

Instrucciones OpCode Bytes Banderas Instrucciones OpCode Bytes Banderas


AADIR A,
# de datos

0x24

C, AC,
OV

ADDC A,
# de datos

0x34

C, AC,
OV

AADIR
A, addr IRAM

0x25

C, AC,
OV

ADDC
A, addr IRAM

0x35

C, AC,
OV

AADIR A,
@ R0

0x26

C, AC,
OV

ADDC A, @
R0

0x36

C, AC,
OV

AADIR A,
@ R1

0x27

C, AC,
OV

ADDC A, @
R1

0x37

C, AC,
OV

AADIR A,
R0

0x28

C, AC,
OV

ADDC A, R0

0x38

C, AC,
OV

AADIR A,
R1

0x29

C, AC,
OV

ADDC A, R1

0x39

C, AC,
OV

AADIR A,
R2

0x2A

C, AC,
OV

ADDC A, R2

0x3A

C, AC,
OV

AADIR A,
R3

0x2B

C, AC,
OV

ADDC A, R3

0x3B

C, AC,
OV

AADIR A,
R4

0x2C

C, AC,
OV

ADDC A, R4

0x3C

C, AC,
OV

AADIR A,
R5

0x2D

C, AC,
OV

ADDC A, R5

0x3D

C, AC,
OV

AADIR A,
R6

0x2E

C, AC,
OV

ADDC A, R6

0x3E

C, AC,
OV

AADIR A,
R7

0x2F

C, AC,
OV

ADDC A, R7

0x3F

C, AC,
OV

Descripcin: Descripcin: ADD y ADDC tanto aadir el valor del operando al


valor del acumulador, dejando el valor resultante en el acumulador. El valor de
operando no 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.
El bit de acarreo (C) se establece si existe un remanente de poco 7. En otras
palabras, si el valor sin signo sumado del Acumulador, operando y (en el caso de

ADDC) la bandera de acarreo supera 255 Carry se establece. De lo contrario, el


bit de acarreo se borra.
El Carry 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, operando y (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.
El desbordamiento (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, operando y (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: AJMP


Operacin:
Funcin:
Sintaxis:
Instrucciones

AJMP
Salto Absoluto Dentro 2K Bloquear
AJMP direccin de cdigo
OpCode

Bytes

Banderas

AJMP page0

0x01

Ninguno

AJMP page1

0x21

Ninguno

AJMP page2

0x41

Ninguno

AJMP page3

0x61

Ninguno

AJMP page4

0x81

Ninguno

AJMP page5

0xA1

Ninguno

AJMP page6

0xC1

Ninguno

AJMP pgina 7

0xE1

Ninguno

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

Descripcin: AJMP salta incondicionalmente a la indicada direccin 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
pgina del 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: ANL


Operacin:
Funcin:
Sintaxis:

ANL
AND bit a bit
ANL operando1 , operando2
Instrucciones

OpCode

Bytes

Banderas

ANL addr IRAM , A

0x52

Ninguno

ANL IRAM addr , # de datos

0x53

Ninguno

ANL A, # de datos

0x54

Ninguno

ANL A, addr IRAM

0x55

Ninguno

ANL A, @ R0

0x56

Ninguno

ANL A, @ R1

0x57

Ninguno

ANL A, R0

0x58

Ninguno

ANL A, R1

0x59

Ninguno

ANL A, R2

0x5A

Ninguno

ANL A, R3

0x5b

Ninguno

ANL A, R4

0x5C

Ninguno

ANL A, R5

0x5D

Ninguno

ANL A, R6

0x5E

Ninguno

ANL A, R7

0x5F

Ninguno

ANL C, poco addr

0x82

ANL C, / poco addr

0xB0

Descripcin: ANL hace un bit a bit "AND" entre operando1 y operando2 ,


dejando el valor resultante en operando1 . 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: CJNE


Operacin:
Funcin:
Sintaxis:

CJNE
Compara y Jump si no igual
CJNE operando1 , operando2 , reladdr
Instrucciones

OpCode

Bytes

Banderas

CJNE A, # de datos , reladdr

0xB4

CJNE A, addr IRAM , reladdr

0xB5

CJNE @ R0, # de datos , reladdr

0xB6

CJNE @ R1, # de datos , reladdr

0xB7

CJNE R0, # de datos , reladdr

0xB8

CJNE R1, # de datos , reladdr

0xB9

CJNE R2, # de datos , reladdr

0xBA

CJNE R3, # de datos , reladdr

0xBB

CJNE R4, # de datos , reladdr

0xBC

CJNE R5, # de datos , reladdr

0xBD

CJNE R6, # de datos , reladdr

0xBE

CJNE R7, # de datos , reladdr

0xBF

Descripcin: CJNE compara el valor de operando1 y operando2 y ramas a la


direccin relativa indicado si operando1 yoperando2 no son iguales. Si los dos

operandos son iguales flujo del programa contina con la instruccin siguiente a
la instruccin CJNE.
El bit de acarreo (C) se establece si operando1 es menor que operando2 , de lo
contrario se restablece.
Vea tambin: DJNZ

8051 del conjunto de instrucciones: CLR


Operacin:
Funcin:
Sintaxis:

CLR
Borrar Registro
CLR registro

Instrucciones

OpCode

Bytes

Banderas

CLR poco addr

0xC2

Ninguno

CLR C

0xC3

CLR A

0xE4

Ninguno

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: CPL


Operacin:
Funcin:
Sintaxis:

CPL
Complementar Registro
CPL operando

Instrucciones

OpCode

Bytes

Banderas

CPL A

0xF4

Ninguno

CPL C

0xB3

CPL poco addr

0xB2

Ninguno

Descripcin: CPL complementa operando , dejando el resultado en el


operando . Si el operando es un solo bit, entonces se invierte el estado del
bit. Si el operando es 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 el operando se 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: DA


Operacin:
Funcin:
Sintaxis:

DA
Decimal Ajuste Acumulador
DA A

Instrucciones

OpCode

Bytes

Banderas

DA

0xD4

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.
El bit 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: diciembre


Operacin:
Funcin:
Sintaxis:

Diciembre
Disminuye el Registro
Diciembre registro
Instrucciones

OpCode

Bytes

Banderas

A diciembre

0x14

Ninguno

Diciembre IRAM addr

0x15

Ninguno

Diciembre @ R0

0x16

Ninguno

Diciembre @ R1

0x17

Ninguno

Diciembre R0

0x18

Ninguno

Diciembre R1

0x19

Ninguno

Diciembre R2

0x1A

Ninguno

Diciembre R3

0x1B

Ninguno

Diciembre R4

0x1C

Ninguno

Diciembre R5

0x1D

Ninguno

Diciembre R6

0x1E

Ninguno

Diciembre R7

0x1F

Ninguno

Descripcin: diciembre decrementa el valor de registro en 1. Si el valor inicial


del registro es 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: DIV


Operacin:
Funcin:
Sintaxis:

DIV
Divida Acumulador por B
DIV AB

Instrucciones

OpCode

Bytes

Banderas

DIV AB

0x84

C, 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".
La bandera de acarreo (C) siempre se restablece.

La bandera 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: DJNZ


Operacin:
Funcin:
Sintaxis:

DJNZ
Disminuir y Saltar si es cero
DJNZ registro , reladdr
Instrucciones

OpCode

Bytes

Banderas

DJNZ IRAM addr , reladdr

0xD5

Ninguno

DJNZ R0, reladdr

0xd8

Ninguno

DJNZ R1, reladdr

0xD9

Ninguno

DJNZ R2, reladdr

0xDA

Ninguno

DJNZ R3, reladdr

0xDB

Ninguno

DJNZ R4, reladdr

0xDC

Ninguno

DJNZ R5, reladdr

0xdd

Ninguno

DJNZ R6, reladdr

0xDE

Ninguno

DJNZ R7, reladdr

0xDF

Ninguno

Descripcin: DJNZ decrementa el valor de registro en 1. Si el valor inicial


del registro es 0, decrementando el valor har que se restablece a 255 (0xFF
Hex). Si el nuevo valor de registro no es 0 el programa se bifurcar a la direccin
indicada poraddr relativa . Si el nuevo valor del registro es 0 el flujo del
programa contina con la instruccin siguiente a la instruccin DJNZ.
Vea tambin: diciembre , JZ , JNZ

8051 del conjunto de instrucciones: INC


Operacin:
Funcin:

INC
Incrementa el Registro

Sintaxis:

INC registro

Instrucciones

OpCode

Bytes

Banderas

INC A

0x04

Ninguno

INC IRAM addr

0x05

Ninguno

INC @ R0

0x06

Ninguno

INC @ R1

0x07

Ninguno

INC R0

0x08

Ninguno

INC R1

0x09

Ninguno

INC R2

0x0A

Ninguno

INC R3

0x0B

Ninguno

INC R4

0x0C

Ninguno

INC R5

0x0D

Ninguno

INC R6

0x0E

Ninguno

INC R7

0x0F

Ninguno

INC DPTR

0xA3

Ninguno

Descripcin: INC incrementa el valor de registro en 1. Si el valor inicial


del registro es 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: JB


Operacin:
Funcin:
Sintaxis:

JB
Saltar si el bit se establece
JB poco addr , reladdr

Instrucciones

OpCode

Bytes

Banderas

JB poco addr , reladdr

0x20

Ninguno

Descripcin: JB ramas a la direccin indicada por reladdr si el bit indicado


por poco addr est 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: JBC


Operacin:
Funcin:
Sintaxis:

JBC
Saltar si Bit Set y Clear Bit
JB poco addr , reladdr
Instrucciones

OpCode

Bytes

Banderas

JBC poco addr , reladdr

0x10

Ninguno

Descripcin: JBC se bifurcar a la direccin indicada por reladdr si el bit


indicado por poco addr est establecido. Antes de ramificacin a reladdr la
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: JC


Operacin:
Funcin:
Sintaxis:

JC
Saltar si Llevar Set
JC reladdr

Instrucciones

OpCode

Bytes

Banderas

JC reladdr

0x40

Ninguno

Descripcin: JC se bifurcar a la direccin indicada por reladdr si 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: JMP


Operacin:
Funcin:
Sintaxis:

JMP
Saltar al puntero de datos + Acumulador
JMP @ A + DPTR

Instrucciones

OpCode

Bytes

Banderas

JMP @ A + DPTR

0x73

Ninguno

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: JNB


Operacin:
Funcin:
Sintaxis:

JNB
Saltar si Bit no activado
JNB poco addr , reladdr
Instrucciones

OpCode

Bytes

Banderas

JNB poco addr , reladdr

0x30

Ninguno

Descripcin: JNB se bifurcar a la direccin indicada por reladdress si 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: JNC


Operacin:
Funcin:
Sintaxis:

JNC
Saltar si llevamos no Set
JNC reladdr

Instrucciones

OpCode

Bytes

Banderas

JNC reladdr

0x50

Ninguno

Descripcin: ramas JNC a la direccin indicada por reladdr si 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: JNZ


Operacin:
Funcin:
Sintaxis:

JNZ
Saltar si Acumulador No Cero
JNZ reladdr

Instrucciones

OpCode

Bytes

Banderas

JNZ reladdr

0x70

Ninguno

Descripcin: JNZ se bifurcar a la direccin indicada por reladdr si 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: JZ


Operacin:
Funcin:
Sintaxis:

JZ
Saltar si Acumulador Zero
JNZ reladdr

Instrucciones

OpCode

Bytes

Banderas

JZ reladdr

0x60

Ninguno

Descripcin: ramas JZ a la direccin indicada por reladdr si 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: LCALL


Operacin:
Funcin:
Sintaxis:

LCALL
Long Call
LCALL cdigo addr

Instrucciones

OpCode

Bytes

Banderas

LCALL cdigo addr

0x12

Ninguno

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: LJMP


Operacin:
Funcin:
Sintaxis:

LJMP
Salto de longitud
LJMP cdigo addr

Instrucciones

OpCode

Bytes

Banderas

LJMP cdigo addr

0x02

Ninguno

Descripcin: LJMP salta incondicionalmente a la especificada addr cdigo .


Vea tambin: AJMP , SJMP , JMP

8051 del conjunto de instrucciones: MOV


Operacin:
Funcin:

MOV
Memoria Move

Sintaxis:

MOV operando1 , operando2


Instrucciones

OpCode

Bytes

Banderas

MOV @ R0, # de datos

0x76

Ninguno

MOV @ R1, # de datos

0x77

Ninguno

MOV @ R0, A

0xF6

Ninguno

MOV @ R1, A

0xF7

Ninguno

MOV @ R0, IRAM addr

0xA6

Ninguno

MOV @ R1, IRAM addr

0xA7

Ninguno

MOV A, # de datos

0x74

Ninguno

MOV A, @ R0

0xE6

Ninguno

MOV A, @ R1

0xE7

Ninguno

MOV A, R0

0xE8

Ninguno

MOV A, R1

0xE9

Ninguno

MOV A, R2

0xEA

Ninguno

MOV A, R3

0xEB

Ninguno

MOV A, R4

0xEC

Ninguno

MOV A, R5

0xED

Ninguno

MOV A, R6

0xEE

Ninguno

MOV A, R7

0xEF

Ninguno

MOV A, addr IRAM

0xE5

Ninguno

MOV C, poco addr

0xA2

MOV DPTR, # Data16

0x90

Ninguno

MOV R0, # de datos

0x78

Ninguno

MOV R1, # de datos

0x79

Ninguno

MOV R2, # de datos

0x7A

Ninguno

MOV R3, # de datos

0x7B

Ninguno

MOV R4, # de datos

0x7C

Ninguno

MOV R5, # de datos

0x7D

Ninguno

MOV R6, # de datos

0x7E

Ninguno

MOV R7, # de datos

0x7F

Ninguno

MOV R0, A

0xF8

Ninguno

MOV R1, A

0xF9

Ninguno

MOV R2, A

0xFA

Ninguno

MOV R3, A

0xFB

Ninguno

MOV R4, A

0xFC

Ninguno

MOV R5, A

0xFD

Ninguno

MOV R6, A

0xFE

Ninguno

MOV R7, A

0xFF

Ninguno

MOV R0, addr IRAM

0xA8

Ninguno

MOV R1, addr IRAM

0xa9

Ninguno

MOV R2, addr IRAM

0xAA

Ninguno

MOV R3, addr IRAM

0xAB

Ninguno

MOV R4, addr IRAM

0xAC

Ninguno

MOV R5, addr IRAM

0xAD

Ninguno

MOV R6, addr IRAM

0xAE

Ninguno

MOV R7, addr IRAM

0xAF

Ninguno

MOV addr poco , C

0x92

Ninguno

MOV IRAM addr , # de datos

0x75

Ninguno

MOV IRAM addr , @ R0

0x86

Ninguno

MOV IRAM addr , @ R1

0x87

Ninguno

MOV addr IRAM , R0

0x88

Ninguno

MOV addr IRAM , R1

0x89

Ninguno

MOV addr IRAM , R2

0x8A

Ninguno

MOV addr IRAM , R3

0x8B

Ninguno

MOV addr IRAM , R4

0x8C

Ninguno

MOV addr IRAM , R5

0x8D

Ninguno

MOV addr IRAM , R6

0x8E

Ninguno

MOV addr IRAM , R7

0x8F

Ninguno

MOV addr IRAM , A

0xF5

Ninguno

MOV IRAM dir , dir IRAM

0x85

Ninguno

Descripcin: MOV copia el valor de operando2 en operando1 . El valor


de operando2 no se ve afectada. Tantooperando1 y operando2 deben 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: MOVC


Operacin:
Funcin:
Sintaxis:

MOVC
Mueva Cdigo Byte al Acumulador
MOVC A, @ A + registro
Instrucciones

OpCode

Bytes

Banderas

MOVC A, @ A + DPTR

0x93

Ninguno

MOVC A, @ A + PC

0x83

Ninguno

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: MOVX


Operacin:
Funcin:
Sintaxis:

MOVX
Mover datos hacia / desde la memoria externa (XRAM)
MOVX operando1 , operando2

Instrucciones

OpCode

Bytes

Banderas

MOVX @ DPTR, A

0xF0

Ninguno

MOVX @ R0, A

0xF2

Ninguno

MOVX @ R1, A

0xF3

Ninguno

MOVX A, @ DPTR

0xE0

Ninguno

MOVX A, @ R0

0xE2

Ninguno

MOVX A, @ R1

0xE3

Ninguno

Descripcin: MOVX mueve un byte hacia o desde la memoria externa en o


desde el acumulador.
Si operando1 esDPTR, 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. Si operando2 es DPTR
entonces el byte se mueve de memoria externa en el acumulador.
Si operando1 es @ 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. Si operando2 es @ R0 o R1 @ entonces el byte se
mueve de memoria externa en el acumulador.
Vea tambin: MOV , MOVC

8051 del conjunto de instrucciones: MUL


Operacin:
Funcin:
Sintaxis:

MUL
Multiplique Acumulador por B
MUL AB

Instrucciones

OpCode

Bytes

Banderas

MUL AB

0xA4

C, 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.
El indicador de acarreo (C) siempre se restablece.
La bandera 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: NOP


Operacin:
Funcin:
Sintaxis:

NOP
Ninguno, perder el tiempo
No Operacin

Instrucciones

OpCode

Bytes

Banderas

NOP

0x00

Ninguno

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: ORL


Operacin:
Funcin:
Sintaxis:

ORL
OR bit a bit
ORL operando1 , operando2
Instrucciones

OpCode

Bytes

Banderas

ORL addr IRAM , A

0x42

Ninguno

ORL IRAM addr , # de datos

0x43

Ninguno

ORL A, # de datos

0x44

Ninguno

ORL A, addr IRAM

0x45

Ninguno

ORL A, @ R0

0x46

Ninguno

ORL A, @ R1

0x47

Ninguno

ORL A, R0

0x48

Ninguno

ORL A, R1

0x49

Ninguno

ORL A, R2

0x4A

Ninguno

ORL A, R3

0x4B

Ninguno

ORL A, R4

0x4C

Ninguno

ORL A, R5

0x4D

Ninguno

ORL A, R6

0x4E

Ninguno

ORL A, R7

0x4F

Ninguno

ORL C, poco addr

0x72

ORL C, / poco addr

0xA0

Descripcin: ORL hace un "OR" operacin entre operando1 y operando2 ,


dejando el valor resultante en . operando1 El valor de operando2 no 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: POP


Operacin:
Funcin:
Sintaxis:

POP
Pop Valor De Pila
POP

Instrucciones

OpCode

Bytes

Banderas

POP IRAM addr

0xD0

Ninguno

Descripcin: POP "aparece" el ltimo valor que se da en la pila en el addr


IRAM especificado. En otras palabras, POP cargar IRAM addr con 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: EMPUJE


Operacin:
Funcin:
Sintaxis:

EMPUJAR
Empuje valor en la pila
EMPUJAR

Instrucciones

OpCode

Bytes

Banderas

EMPUJE IRAM addr

0xC0

Ninguno

Descripcin: PUSH "empuja" el valor de la especificada addr IRAM en la


pila. EMPUJE primero incrementa el valor del puntero de pila por 1, a
continuacin, toma el valor almacenado en addr IRAM y lo almacena en la
memoria RAM interna en el lugar sealado por el incrementado Stack Pointer.
Vea tambin: POP

8051 del conjunto de instrucciones: RET


Operacin:
Funcin:
Sintaxis:

RET
Regreso de la subrutina
RET

Instrucciones

OpCode

Bytes

Banderas

RET

0x22

Ninguno

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: RETI


Operacin:
Funcin:
Sintaxis:

RETI
Regreso de la interrupcin
RETI

Instrucciones

OpCode

Bytes

Banderas

RETI

0x32

Ninguno

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: RL


Operacin:
Funcin:
Sintaxis:

RL
Rotar acumulador Izquierda
RL A

Instrucciones

OpCode

Bytes

Banderas

RL A

0x23

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: RLC


Operacin:
Funcin:
Sintaxis:

RLC
Gire Acumulador Izquierda travs Carry
RLC A

Instrucciones

OpCode

Bytes

Banderas

RLC A

0x33

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: RR


Operacin:
Funcin:
Sintaxis:

RR
Rotar acumulador Derecho
RR A

Instrucciones

OpCode

Bytes

Banderas

RR A

0x03

Ninguno

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: RRC


Operacin:
Funcin:
Sintaxis:

RRC
Gire Acumulador derecha a travs de Carry
RRC A

Instrucciones

OpCode

Bytes

Banderas

RRC A

0x13

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: SETB


Operacin:
Funcin:
Sintaxis:

SETB
Bit Set
SETB poco addr

Instrucciones

OpCode

Bytes

Banderas

SETB C

0xD3

SETB poco addr

0xD2

Ninguno

Descripcin: Establece el bit especificado.


Vea tambin: CLR

8051 del conjunto de instrucciones: SJMP


Operacin:
Funcin:
Sintaxis:

SJMP
Corto Jump
SJMP reladdr

Instrucciones

OpCode

Bytes

Banderas

SJMP reladdr

0x80

Ninguno

Descripcin: SJMP salta incondicionalmente a la direccin


especificada reladdr . Reladdr debe 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: SUBB


Operacin:
Funcin:
Sintaxis:

SUBB
Restar de Acumulador Con Borrow
SUBB A, operando

Instrucciones

OpCode

Bytes

Banderas

SUBB A, # de datos

0x94

C, AC, OV

SUBB A, addr IRAM

0x95

C, AC, OV

SUBB A, @ R0

0x96

C, AC, OV

SUBB A, @ R1

0x97

C, AC, OV

SUBB A, R0

0x98

C, AC, OV

SUBB A, R1

0x99

C, AC, OV

SUBB A, R2

0x9A

C, AC, OV

SUBB A, R3

0x9B

C, AC, OV

SUBB A, R4

0x9C

C, AC, OV

SUBB A, R5

0x9D

C, AC, OV

SUBB A, R6

0x9E

C, AC, OV

SUBB A, R7

0x9F

C, AC, OV

Descripcin: SUBB restar el valor del operando desde el valor del acumulador,
dejando el valor resultante en el acumulador.El valor de operando no se ve
afectada.
El bit 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.
El Carry 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.
El desbordamiento (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: SWAP


Operacin:
Funcin:
Sintaxis:

SWAP
Intercambia acumuladores Nibbles
SWAP A

Instrucciones

OpCode

Bytes

Banderas

SWAP A

0xC4

Ninguno

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


Indefinido
Operacin:
Funcin:
Sintaxis:

Instruccin Indefinido
Indefinido
???

Instrucciones

OpCode

Bytes

Banderas

???

0xA5

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, Bit2 y 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: XCH


Operacin:
Funcin:
Sintaxis:

XCH
Cambio Bytes
XCH A, regstrese

Instrucciones

OpCode

Bytes

Banderas

XCH A, @ R0

0xC6

Ninguno

XCH A, @ R1

0xC7

Ninguno

XCH A, R0

0xC8

Ninguno

XCH A, R1

0xC9

Ninguno

XCH A, R2

0xCA

Ninguno

XCH A, R3

0xCB

Ninguno

XCH A, R4

0xCC

Ninguno

XCH A, R5

0xCD

Ninguno

XCH A, R6

0xCE

Ninguno

XCH A, R7

0xCF

Ninguno

XCH A, addr IRAM

0xC5

Ninguno

Descripcin: Intercambia el valor del acumulador con el valor contenido en el


registro .
Vea tambin: MOV

8051 del conjunto de instrucciones: XCHD

Operacin:
Funcin:
Sintaxis:

XCHD
Cambio Digit
XCHD A, [@ R0 / @ R1]

Instrucciones

OpCode

Bytes

Banderas

XCHD A, @ R0

0xD6

Ninguno

XCHD A, @ R1

0xD7

Ninguno

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: XRL


Operacin:
Funcin:
Sintaxis:

XRL
Bitwise OR exclusiva
XRL operando1 , operando2
Instrucciones

OpCode

Bytes

Banderas

XRL addr IRAM , A

0x62

Ninguno

XRL IRAM addr , # de datos

0x63

Ninguno

XRL A, # de datos

0x64

Ninguno

XRL A, addr IRAM

0x65

Ninguno

XRL A, @ R0

0x66

Ninguno

XRL A, @ R1

0x67

Ninguno

XRL A, R0

0x68

Ninguno

XRL A, R1

0x69

Ninguno

XRL A, R2

0x6A

Ninguno

XRL A, R3

0x6B

Ninguno

XRL A, R4

0x6C

Ninguno

XRL A, R5

0x6D

Ninguno

XRL A, R6

0x6E

Ninguno

XRL A, R7

0x6F

Ninguno

Descripcin: XRL hace un bit a bit "O EXCLUSIVO" operacin


entre operando1 y operando2 , dejando el valor resultante en operando1 . 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

Das könnte Ihnen auch gefallen