Sunteți pe pagina 1din 74

8051 Juego de instrucciones

Instrucciones de código de operación

0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
0x0f
0 1 2 3 4 5 6 7 8 9 a b c d e

0x0 NOP AJM LJM RR INC INC INC INC INC INC INC INC INC INC INC INC
0 P P

0x1 JBC ACA LCA CRR Dicie Dicie Dicie Dicie Dicie Dicie Dicie Dicie Dicie Dicie Dicie Dicie
0 LL LL mbre mbre mbre mbre mbre mbre mbre mbre mbre mbre mbre mbre

0x2 JB AJM RET RL Añad Añad Añad Añad Añad Añad Añad Añad Añad Añad Añad Añad
0 P ir ir ir ir ir ir ir ir ir ir ir ir

0x3 JNB ACA RETI RLC ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD
0 LL C C C C C C C C C C C C

0x4 JC AJM ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL ORL
0 P

0x5 CPN ACA ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL ANL
0 LL

0x6 JZ AJM XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL XRL
0 P

0x7 JNZ ACA ORL JMP MO MO MO MO MO MO MO MO MO MO MO MO


0 LL V V V V V V V V V V V V

0x8 SJM AJM ANL MO DIV MO MO MO MO MO MO MO MO MO MO MO


0 P P VC V V V V V V V V V V V

0x9 MO ACA MO MO SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB SUB
0 V LL V VC B B B B B B B B B B B B

0X ORL AJM MO INC MUL ? MO MO MO MO MO MO MO MO MO MO


A0 P V V V V V V V V V V V

0X ANL ACA CPL CPL CJN CJN CJN CJN CJN CJN CJN CJN CJN CJN CJN CJN
B0 LL E E E E E E E E E E E E
CLR CLR
PUS AJM SWA XCII XCII XCII XCII XCII XCII XCII XCII XCII XCII XCII
0xc
H P P
0

0xD POP ACA SET SET DA DJN XCH XCH DJN DJN DJN DJN DJN DJN DJN DJN
0 LL B B Z D D Z Z Z Z Z Z Z Z

0X MO AJM MO MO CLR MO MO MO MO MO MO MO MO MO MO MO
E0 VX P VX VX V V V V V V V V V V V

0xF MO ACA MO MO CPL MO MO MO MO MO MO MO MO MO MO MO


0 VX LL VX VX V V V V V V V V V V V

Lista alfabética de Instrucciones de

 ACALL - Call Absoluto


 ADD, ADDC - Añadir acumulador (saldo)
 AJMP - Salto Absoluto
 ANL - AND bit a bit
 CJNE - Comparar y Salto si no igual
 CLR - Clear Registro
 CPL - Complemento Registro
 DA - ajuste decimal
 Diciembre - Decremento Registro
 DIV - Divide acumulador de B
 DJNZ - Decremento Registro y Saltar si no es cero
 INC - Incremento de Registro de
 JB - Saltar si Bit Set
 JBC - Saltar si Bit Set y Clear Bit
 JC - Saltar si Carry Set
 JMP - Ir a la Dirección
 JNB - Saltar si no Bit Set
 JNC - Saltar si no Carry Set
 JNZ - Saltar si el acumulador no es cero
 JZ - Saltar si el acumulador Zero
 LCALL - llamada de larga
 LJMP - Long Jump
 MOV - Mover la memoria
 MOVC - Move Código de memoria
 MOVX - Move Extended Memory
 MUL - Multiplica acumulador de B
 NOP - No Operación
 ORL - OR bit a bit
 POP - Pop Valor de la pila
 PUSH - Push valor en la pila
 RET - Retorno de subrutina
 RETI - Retorno de interrupción
 RL - Rotar acumulador restante
 RLC - Gire a la izquierda por acumulador Carry
 RR - Rotar acumulador Derecho
 RRC - Rotar acumulador Derecho acarreo
 SETB - Bit Set
 SJMP - Salto de corto
 SUBB - restar de acumulador con la Obtención de Préstamos
 SWAP - Swap acumulador Nibbles
 XCH - Intercambio Bytes
 XCHD - Intercambio dígitos
 XRL - bit a bit exclusivo o
 Undefined - Undefined Instrucción

8051 Conjunto de instrucciones: ACALL

Ope AC
raci AL
ón: L

Call
Blo
ck
Fun abso
ción luta
: dent
ro
de
2K

Dir
ecci
ón,
Sint
códi
axis
go
:
AC
AL
L

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s
2
AC 0x1 Nin
AL 1 gun
L o
pa
ge
0

AC
AL
Nin
L 0x3 2
gun
pa 1
o
ge
1

AC
AL
Nin
L 0x5 2
gun
Pá 1
o
gin
a2

AC
AL
Nin
L 0x7 2
gun
Pá 1
o
gin
a3

AC
AL
Nin
L 0x9 2
gun
Pá 1
o
gin
a4

AC
AL
Nin
L 0x 2
gun
Pá B1
o
gin
a5

AC
AL
Nin
L 0x 2
gun
Pá D1
o
gin
a6
2
AC
AL
Nin
L 0x
gun
Pá F1
o
gin
a7

Descripción: ACALL incondicionalmente llama a una subrutina en la dirección de


código indicado. ACALL empuja a la dirección de la instrucción que sigue ACALL en
la pila, menos significativo primer byte, más significativo segundo byte. El contador de
programa se actualiza de manera que la ejecución del programa continúa en la dirección
indicada.

El nuevo valor para el Contador de Programa se calcula mediante la sustitución de los


menos importantes-byte del contador de programa con el segundo byte de la instrucción
ACALL, y la sustitución de los bits 0-2 de los más importantes-byte del contador de
programa con 3 bits que indican la página. Bits 3-7 de la mayoría-siguen siendo
importantes unchaged byte del contador de programa.

Dado que sólo 11 bits del contador de programa se ven afectados por ACALL, las
llamadas sólo se podrá hacer a las rutinas situadas en el mismo bloque 2k como el
primer byte que sigue ACALL.

Ver también: LCALL, RET

8051 Conjunto de instrucciones: ADD

AD
Ope
D,
raci
AD
ón:
DC

Aña
dir
acu
mul
ador
,
Fun
Aña
ción
dir
:
acu
mul
ador
con
Carr
y

ADI
Sint
R A,
axis
ope
:
ran
do

AD
DC
A,
ope
ran
do

Ins Ins
tru tru
cci cci
one one
s s

AD AD
D DC
A, A,
# #
dat dat
os os

AÑ AD
AD DC
IR A,
A, ad
ad dr
dr IR
IR A
A M
M
AD
AD DC
D A,
A, @
@ R0
R0
AD
AD DC
D A,
A,
@
@
R1
R1

AD
AD
DC
D
A,
A,
R0
R0

AD
AD
DC
D
A,
A,
R1
R1

AD
AD
DC
D
A,
A,
R2
R2

AD
AD
DC
D
A,
A,
R3
R3

AD
AD
DC
D
A,
A,
R4
R4

AD
AD
DC
D
A,
A,
R5
R5

AD
AD
DC
D
A,
A,
R6
R6

AD
AD
DC
D
A,
A,
R7
R7
Descripción: Descripción: ADD y ADDC tanto, agregue el valor del operando con el
valor del acumulador, dejando el valor resultante en el acumulador. El operando valor
no se ve afectado. ADD y ADDC funcionan de forma idéntica, excepto que ADDC
añade el valor del operando, así como el valor de la bandera de acarreo Considerando
que la TDA no se le añade la bandera de acarreo al resultado.

El bit de Carry (C) se establece si hay un acarreo de 7 bits. En otras palabras, si el


signo valor acumulado del acumulador, operando y (en el caso de ADDC) la bandera de
acarreo superior a 255 Carry se establece. De lo contrario, se borra el bit de Carry.

El Carry auxiliar (AC) bit se establece si hay un acarreo de 3 bits. En otras palabras,
si el signo valor acumulado de las nibble bajo del acumulador, y operando (en el caso
de ADDC) la bandera de acarreo superior a 15 auxiliares de la bandera de Carry se
establece. De lo contrario, se borra la bandera Auxiliar Carry.

El desbordamiento (OV) bit se establece si hay un acarreo de 6 bits o fuera de 7 bits,


pero no ambos. En otras palabras, si la adición del acumulador, y operando (en el caso
de ADDC) la bandera de acarreo firmado tratados como los resultados de los valores en
un valor que está fuera del rango de un byte con signo (-128 a +127) el desbordamiento
indicador se ha establecido. De lo contrario, se borra el indicador de desbordamiento.

Ver también: SUBB, DA, INC, diciembre

8051 Conjunto de instrucciones: AJMP

Ope
AJ
raci
MP
ón:

Salt
ar
abso
luta
Fun
dent
ción
ro
:
de
2K
Blo
ck

Sint Dir
axis ecci
: ón,
códi
go
AJ
MP

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

AJ
MP Nin
0x0 2
pa gun
1
ge o
0

AJ
MP Nin
0x2 2
pa gun
1
ge o
1

AJ
MP Nin
0x4 2
Pá gun
1
gin o
a2

AJ
MP Nin
0x6 2
Pá gun
1
gin o
a3

AJ
MP Nin
0x8 2
Pá gun
1
gin o
a4

AJ
MP Nin
0xa 2
Pá gun
1
gin o
a5
2
AJ 0x Nin
MP
Pá gun
C1
gin o
a6

AJ
MP Nin
0x 2
Pá gun
E1
gin o
a7

Descripción: AJMP incondicionalmente salta a la dirección de código indicado. El


nuevo valor para el Contador de Programa se calcula mediante la sustitución de los
menos importantes-byte del contador de programa con el segundo byte de la instrucción
AJMP, y la sustitución de los bits 0-2 de los más importantes-byte del contador de
programa con 3 bits que indican la página del byte siguiendo las instrucciones AJMP.
Bits 3-7 de la mayoría-siguen siendo importantes unchaged byte del contador de
programa.

Dado que sólo 11 bits del contador de programa se ven afectados por AJMP, saltos sólo
se podrá hacer con el código ubicado dentro del mismo bloque 2k como el primer byte
que sigue AJMP.

Ver también: LJMP, SJMP

8051 Conjunto de instrucciones: ANL

Ope
AN
raci
L
ón:

AN
Fun
D
ción
bit a
:
bit

AN
L
ope
Sint
ran
axis
do1,
:
ope
ran
do2
Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
IR
Nin
A 0x5 2
gun
M 2
o
AN
L,
A

Ad
dr
IR
A
Nin
M 0x5 3
gun
AN 3
o
L,
#
dat
os

AN
L
Nin
A, 0x5 2
gun
# 4
o
dat
os

AN
L
A,
Nin
ad 0x5 2
gun
dr 5
o
IR
A
M
1
AN 0x5 Nin
L 6 gun
A, o
@
R0

AN
L Nin
0x5 1
A, gun
7
@ o
R1

AN
Nin
L 0x5 1
gun
A, 8
o
R0

AN
Nin
L 0x5 1
gun
A, 9
o
R1

AN
Nin
L 0x5 1
gun
A, A
o
R2

AN
Nin
L 0x5 1
gun
A, B
o
R3

AN
Nin
L 0x5 1
gun
A, C
o
R4

AN
Nin
L 0x5 1
gun
A, d
o
R5

AN
Nin
L 0x5 1
gun
A, e
o
R6
1
AN
Nin
L 0x5
gun
A, F
o
R7

AN
L
C,
0x8 2 C
ad
2
dr
bit
s

AN
L
C, /
0x 2 C
ad
B0
dr
bit
s

Descripción: ANL hace un bit a bit "y" operación entre operando1 y operando2,
dejando el valor resultante en operando1. El valor de operando2 no se ve afectado.
Una lógica "Y", compara los bits de cada operando y establece el bit correspondiente en
el byte resultante sólo si el bit se fijó en los dos operandos original, de lo contrario el bit
resultante se borra.

Ver también: ORL, XRL

8051 Conjunto de instrucciones: CJNE

Ope
CJ
raci
NE
ón:

Co
mpa
rar y
Fun
Salt
ción
o si
:
no
igua
l
CJN
E
ope
ran
Sint
do1,
axis
ope
:
ran
do2,
rela
ddr

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

CJ
NE
A,
los
dat 0X 3 C
os B4
#,
rel
ad
dr

CJ
NE
A,
ad
dr
0x 3 C
IR
B5
A
M,
rel
ad
dr
3 C
CJ 0xb
NE 6
@
R0,
#
dat
os,
rel
ad
dr

CJ
NE
@
R1,
# 0xb 3 C
dat 7
os,
rel
ad
dr

CJ
NE
R0,
los
dat 0x 3 C
os B8
#,
rel
ad
dr

CJ
NE
R1,
dat
0xb 3 C
os
9
#,
rel
ad
dr

CJ
NE
R2,
los
dat 0xb 3 C
os a
#,
rel
ad
dr
CJ
NE
R3,
los
dat 0xb 3 C
os b
#,
rel
ad
dr

CJ
NE
R4,
los
dat 0xb 3 C
os c
#,
rel
ad
dr

CJ
NE
R5,
los
dat 0x 3 C
os BD
#,
rel
ad
dr

CJ
NE
R6,
los
dat 0x 3 C
os BE
#,
rel
ad
dr
3 C
CJ 0x
NE BF
R7,
los
dat
os
#,
rel
ad
dr

Descripción: CJNE compara el valor de operando1 y operando2 y sucursales en


relación a la dirección indicada si operando1 y operando2 no son iguales. Si los dos
operandos son iguales flujo del programa continúa con la instrucción después de la
instrucción CJNE.

El bit de Carry (C) se establece si operando1 es inferior a operando2, de lo contrario


se disipa.

Ver también: DJNZ

8051 Conjunto de instrucciones: CLR

Ope
CL
raci
R
ón:

Reg
Fun
istro
ción
abie
:
rto

Reg
Sint istr
axis o
: CL
R

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s
2
Ad 0x Nin
dr C2 gun
po
co
o
CL
R

CL
0xc 1 C
R
3
C

CL Nin
0xe 1
R gun
4
A o

Descripción: CLR borra (juegos a 0) todos los bits (s) del registro indicado. Si el
registro es un poco (incluyendo el bit de acarreo), sólo el bit especificado está afectada.
Limpiando el acumulador establece el valor del acumulador a 0.

Ver también: SETB

8051 Conjunto de instrucciones: CPL

Ope
CP
raci
L
ón:

Co
mpl
Fun
eme
ción
nto
:
Reg
istro

Ope
Sint
ran
axis
do
:
CPL

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s
1
Nin
CP 0x
gun
L A F4
o

CP 0xb 1 C
LC 3

Ad
dr
Nin
po 0x 2
gun
co B2
o
CP
L

Descripción: CPL complementa operando, dejando el resultado en operando. Si


operando es un bit, entonces el estado del bit será invertido. Si operando es el
acumulador, entonces todos los bits en el acumulador se invertirá. Esto puede ser
pensado como "acumulador lógico OR exclusivo 255" o como "255-acumulador". Si el
operando se refiere a un poco de un puerto de salida, el valor que se complementarán se
basa en el último valor escrito para que poco, no el último valor leído de ella.

Ver también: CLR, SETB

8051 Conjunto de instrucciones: DA

Ope
DA
raci
ón:

Aju
ste
deci
Fun
mal
ción
del
:
acu
mul
ador

Sint DA
axis A
:

Ins Op Byt Ba
tru
cci Co nde
es
one de ras
s

0x 1 C
DA
D4

Descripción: DA ajusta el contenido del acumulador para corresponder a un BCD


(decimal codificado en binario) el número después de dos números BCD han sido
añadidos por el ADD o instrucción ADDC. Si el bit de acarreo se establece o si el valor
de los bits 0-3 superior a 9, 0x06 se añade al acumulador. Si el bit de acarreo se
estableció cuando la instrucción se inició, 0x06, o si esta en el acumulador en el primer
paso, 0x60, se añadirá el acumulador.

El bit de Carry (C) se establece si el valor resultante es superior a 0x99, si no se


disipa.

Ver también: Añadir, ADDC

8051 Conjunto de instrucciones: diciembre

Ope Dici
raci emb
ón: re

Dec
Fun rem
ción ento
: Reg
istro

Reg
istr
Sint
o de
axis
dici
:
emb
re

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s
Nin
0x1 1
Dic gun
4
o

Ad
dr
IR
Nin
A 0x1 2
gun
M 5
o
dici
em
bre

Dic
iem Nin
0x1 1
bre gun
6
@ o
R0

Dic
iem Nin
0x1 1
bre gun
7
@ o
R1

Dic
Nin
iem 0x1 1
gun
bre 8
o
R0

Dic
Nin
iem 0x1 1
gun
bre 9
o
R1

Dic
Nin
iem 0x1 1
gun
bre A
o
R2

Dic
Nin
iem 0x1 1
gun
bre B
o
R3
Dic
Nin
iem 0x1 1
gun
bre C
o
R4

Dic
Nin
iem 0x1 1
gun
bre D
o
R5

Dic
Nin
iem 0x1 1
gun
bre E
o
R6

Dic
Nin
iem 0x1 1
gun
bre F
o
R7

Descripción: diciembre disminuye el valor del registro por 1. Si el valor inicial de


registro es el 0, el valor decreciente hará que se restablece a 255 (0xFF Hex). Nota: La
bandera de acarreo no se establece cuando el valor "da la vuelta" de 0 a 255.

Ver también: INC, SUBB

8051 Conjunto de instrucciones: DIV

Ope
raci DIV
ón:

Divi
de
Fun el
ción acu
: mul
ador
de B

Sint
DIV
axis
AB
:
Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

DI C,
0x8 1
V OV
4
AB

Descripción: 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) está siempre despejado.

El indicador de desbordamiento (OV) se establece si la división por 0 se intentó, de


lo contrario se disipa.

Ver también: MUL AB

8051 Conjunto de instrucciones: DJNZ

Ope
DJ
raci
NZ
ón:

Dec
rem
ento
Fun y
ción salt
: o si
no
es
cero

Reg
istr
Sint o
axis DJN
: Z,
rela
ddr
Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
IR
A
M Nin
0x 3
DJ gun
D5
NZ o
,
rel
ad
dr

DJ
NZ
Nin
R0, 0x 2
gun
rel D8
o
ad
dr

DJ
NZ
Nin
R1, 0x 2
gun
rel D9
o
ad
dr

DJ
NZ
Nin
R2, 0x 2
gun
rel DA
o
ad
dr

DJ
NZ
Nin
R3, 0xd 2
gun
rel b
o
ad
dr
DJ
NZ
Nin
R4, 0x 2
gun
rel DC
o
ad
dr

DJ
NZ
Nin
R5, 0x 2
gun
rel DD
o
ad
dr

DJ
NZ
Nin
R6, 0x 2
gun
rel DE
o
ad
dr

DJ
NZ
Nin
R7, 0x 2
gun
rel DF
o
ad
dr

Descripción: DJNZ disminuye el valor del registro por 1. Si el valor inicial de registro
es el 0, el valor decreciente hará que se restablece a 255 (0xFF Hex). Si el nuevo valor
de registro no es 0, el programa sucursal a la dirección indicada por addr relativa. Si el
nuevo valor de registro es de 0 el flujo del programa continúa con la instrucción
después de la instrucción DJNZ.

Ver también: diciembre, JZ, JNZ

8051 Conjunto de instrucciones: INC

Ope
raci INC
ón:

Fun Incr
eme
nto
ción de
: Reg
istro
de

Reg
Sint
istr
axis
o
:
INC

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

IN Nin
0x0 1
C gun
4
A o

Ad
dr
IR Nin
0x0 2
A gun
5
M o
IN
C

IN
Nin
C 0x0 1
gun
@ 6
o
R0

IN
Nin
C 0x0 1
gun
@ 7
o
R1

IN Nin
0x0 1
C gun
8
R0 o
1
IN 0x0 Nin
C gun
9
R1 o

IN Nin
0x0 1
C gun
A
R2 o

IN Nin
0x0 1
C gun
B
R3 o

IN Nin
0x0 1
C gun
C
R4 o

IN Nin
0x0 1
C gun
D
R5 o

IN Nin
0x0 1
C gun
E
R6 o

IN Nin
0x0 1
C gun
F
R7 o

IN
Nin
C 0x 1
gun
DP A3
o
TR

Descripción: INC incrementos del valor de registro por 1. Si el valor inicial de


registro es 255 (0xFF Hex), incrementando el valor hará que se restablece a 0. Nota: La
bandera de acarreo no se establece cuando el valor "da la vuelta" 255 a 0.

En el caso de "INC DPTR", se incrementa el valor de dos bytes valor entero sin signo
de DPTR. Si el valor inicial de DPTR es 65535 (0xFFFF Hex), incrementando el valor
hará que se restablece a 0. Una vez más, la bandera de acarreo no se establece cuando
el valor de DPTR "se da la vuelta" 65535-0.

Ver también: Añadir, ADDC, diciembre


8051 Conjunto de instrucciones: JB

Ope
JB
raci
ón:

Salt
Fun
ar si
ción
Bit
:
Set

Add
r
Sint poc
axis o
: JB,
rela
ddr

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
po
Nin
co 0x2 3
gun
JB, 0
o
rel
ad
dr

Descripción: ramas JB a la dirección indicada por reladdr si el bit indicado por addr
bit está establecido. Si el bit no se establece la ejecución del programa continúa con la
instrucción después de la instrucción JB.

Ver también: JBC, JNB

8051 Conjunto de instrucciones: JBC

Ope JB
raci
C
ón:
Si
Salt
ar
Fun Bit
ción Set
: y
Clea
r Bit

Add
r
Sint poc
axis o
: JB,
rela
ddr

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
po
co Nin
0x1 3
JB gun
0
C, o
rel
ad
dr

Descripción: JBC se rama a la dirección indicada por reladdr si el bit indicado por
addr bit está establecido. Antes de la ramificación de reladdr la instrucción borrar el bit
indicado. Si el bit no se establece la ejecución del programa continúa con la instrucción
siguiente a la instrucción de JBC.

Ver también: JB, JNB

8051 Conjunto de instrucciones: JC


JC
Ope
raci
ón:

Salt
Fun ar si
ción Carr
: y
Set

Sint Rel
axis add
: r JC

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Rel
Nin
ad 0x4 2
gun
dr 0
o
JC

Descripción: JC se rama a la dirección indicada por reladdr si está establecido el bit de


acarreo. Si el bit de acarreo no se establece la ejecución del programa continúa con la
instrucción después de la instrucción JC.

Ver también: JNC

8051 Conjunto de instrucciones: JMP

Ope
JM
raci
P
ón:

Fun Salt
ción ar a
: dato
s
punt
ero
+
acu
mul
ador

JMP
Sint @ A
axis +
: DP
TR

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

JM
P
Nin
@ 0x7 1
gun
A+ 3
o
DP
TR

Descripción: JMP salta incondicionalmente a la dirección correspondiente a la suma


del valor de la DPTR y el valor del acumulador.

Ver también: LJMP, AJMP, SJMP

8051 Conjunto de instrucciones: JNB

Ope
JN
raci
B
ón:

Salt
Fun ar si
ción no
: Bit
Set

Sint Add
axis r
: poc
o
JNB
,
rela
ddr

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
po
co Nin
0x3 3
JN gun
0
B, o
rel
ad
dr

Descripción: JNB se rama a la dirección indicada por reladdress si el bit indicado no


está establecido. Si el bit se establece la ejecución del programa continúa con la
instrucción después de la instrucción JNB.

Ver también: JB, JBC

8051 Conjunto de instrucciones: JNC

Ope
CP
raci
N
ón:

Salt
ar si
Fun
no
ción
Carr
:
y
Set

Rel
Sint add
axis r
: CP
N

Ins Op Byt Ba
tru
cci Co nde
es
one de ras
s

Rel
ad Nin
0x5 2
dr gun
0
CP o
N

Descripción: ramas CPN a la dirección indicada por reladdr si el bit de acarreo no está
establecida. Si el bit de acarreo se establece la ejecución del programa continúa con la
instrucción después de la instrucción JNB.

Ver también: JC

8051 Conjunto de instrucciones: JNZ

Ope
JN
raci
Z
ón:

Salt
ar si
el
Fun acu
ción mul
: ador
no
es
cero

Rel
Sint
add
axis
r
:
JNZ

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s
Rel
ad Nin
0x7 2
dr gun
0
JN o
Z

Descripción: JNZ se desvío hacia la dirección indicada por reladdr si el acumulador


contiene ningún valor, excepto 0. Si el valor del acumulador es cero ejecución del
programa continúa con la instrucción después de la instrucción JNZ.

Ver también: JZ

8051 Conjunto de instrucciones: JZ

Ope
JZ
raci
ón:

Salt
ar si
el
Fun
acu
ción
mul
:
ador
Zer
o

Rel
Sint
add
axis
r
:
JNZ

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Rel
Nin
ad 0x6 2
gun
dr 0
o
JZ
Descripción: ramas JZ a la dirección indicada por reladdr si el acumulador contiene el
valor 0. Si el valor del acumulador no es cero ejecución del programa continúa con la
instrucción después de la instrucción JNZ.

Ver también: JNZ

8051 Conjunto de instrucciones: LCALL

Ope LC
raci AL
ón: L

Lla
Fun mad
ción a de
: larg
a

Add
r
Sint códi
axis go
: LC
AL
L

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr

Nin
dig 0x1 3
gun
o 2
o
LC
AL
L

Descripción: LCALL llama a una subrutina del programa. Incrementos de LCALL el


contador de programa por 3 (para que apunte a la siguiente instrucción LCALL) y
empuja a que el valor en la pila (byte menor primero, segundo byte alto). El contador
de programa se establece entonces como el valor de 16-bits, que sigue el código de
operación LCALL, causando la ejecución del programa a seguir en esa dirección.

Ver también: ACALL, RET

8051 Conjunto de instrucciones: LJMP

Ope
LJ
raci
MP
ón:

Salt
Fun
o de
ción
long
:
itud

Add
r
Sint
códi
axis
go
:
LJ
MP

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
có Nin
0x0 3
dig gun
2
o o
LJ
MP

Descripción: LJMP salta sin condiciones a los addr código especificado.

Ver también: AJMP, SJMP, JMP

8051 Conjunto de instrucciones: MOV


Ope
MO
raci
V
ón:

Mo
ver
Fun
la
ción
me
:
mor
ia

MO
V
ope
Sint
ran
axis
do1,
:
ope
ran
do2

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

M
OV
@ Nin
0x7 2
R0, gun
6
# o
dat
os

M
OV
@ Nin
0x7 2
R1, gun
7
# o
dat
os
1
M 0x Nin
OV F6 gun
@ o
R0,
A

M
OV Nin
0x 1
@ gun
F7
R1, o
A

M
OV
@
R0, Nin
0x 2
ad gun
A6
dr o
IR
A
M

M
OV
@
R1, Nin
0x 2
ad gun
A7
dr o
IR
A
M

M
OV
Nin
A, 0x7 2
gun
# 4
o
dat
os

M
OV Nin
0x 1
A, gun
E6
@ o
R0
1
M 0x Nin
OV E7 gun
A, o
@
R1

M
Nin
OV 0x 1
gun
A, E8
o
R0

M
Nin
OV 0xe 1
gun
A, 9
o
R1

M
Nin
OV 0x 1
gun
A, EA
o
R2

M
Nin
OV 0x 1
gun
A, EB
o
R3

M
Nin
OV 0x 1
gun
A, EC
o
R4

M
Nin
OV 0x 1
gun
A, ED
o
R5

M
Nin
OV 0x 1
gun
A, EE
o
R6

M
Nin
OV 0x 1
gun
A, EF
o
R7
2
M 0x Nin
OV E5 gun
A,
ad
dr
o
IR
A
M

M
OV
C,
0x 2 C
ad
A2
dr
bit
s

M
OV
DP
Nin
TR 0x9 3
gun
,# 0
o
dat
a1
6

M
OV
Nin
R0, 0x7 2
gun
# 8
o
dat
os

M
OV
Nin
R1, 0x7 2
gun
# 9
o
dat
os

M
OV
Nin
R2, 0x7 2
gun
# A
o
dat
os
2
M
OV
Nin
R3, 0x7
gun
# B
o
dat
os

M
OV
Nin
R4, 0x7 2
gun
# C
o
dat
os

M
OV
Nin
R5, 0x7 2
gun
# D
o
dat
os

M
OV
Nin
R6, 0x7 2
gun
# E
o
dat
os

M
OV
Nin
R7, 0x7 2
gun
# F
o
dat
os

M
Nin
OV 0x 1
gun
R0, F8
o
A

M
Nin
OV 0x 1
gun
R1, F9
o
A
1
M
Nin
OV 0xF
gun
R2, A
o
A

M
Nin
OV 0x 1
gun
R3, FB
o
A

M
Nin
OV 0x 1
gun
R4, FC
o
A

M
Nin
OV 0xf 1
gun
R5, d
o
A

M
Nin
OV 0x 1
gun
R6, FE
o
A

M
Nin
OV 0x 1
gun
R7, FF
o
A

M
OV
R0,
Nin
ad 0x 2
gun
dr A8
o
IR
A
M
2
M 0xa Nin
OV 9 gun
R1, o
ad
dr
IR
A
M

M
OV
R2,
Nin
ad 0x 2
gun
dr AA
o
IR
A
M

M
OV
R3,
Nin
ad 0x 2
gun
dr AB
o
IR
A
M

M
OV
R4,
Nin
ad 0x 2
gun
dr AC
o
IR
A
M

M
OV
R5,
Nin
ad 0xa 2
gun
dr d
o
IR
A
M
2
M 0x Nin
OV AE gun
R6, o
ad
dr
IR
A
M

M
OV
R7,
Nin
ad 0x 2
gun
dr AF
o
IR
A
M

Ad
dr
po Nin
0x9 2
co gun
2
M o
OV
,C

Ad
dr
IR
A
Nin
M 0x7 3
gun
M 5
o
OV
,#
dat
os

Ad
dr
IR
A Nin
0x8 2
M gun
6
M o
OV
,@
R0
2
Ad 0x8 Nin
dr 7 gun
IR o
A
M
M
OV
,@
R1

Ad
dr
IR
A Nin
0x8 2
M gun
8
M o
OV
,
R0

Ad
dr
IR
A Nin
0x8 2
M gun
9
M o
OV
,
R1

Ad
dr
IR
A Nin
0x8 2
M gun
A
M o
OV
,
R2

Ad
dr
IR
A Nin
0x8 2
M gun
B
M o
OV
,
R3
2
Ad 0x8 Nin
dr c gun
IR
A
M
M o
OV
,
R4

Ad
dr
IR
A Nin
0x8 2
M gun
D
M o
OV
,
R5

Ad
dr
IR
A Nin
0x8 2
M gun
E
M o
OV
,
R6

Ad
dr
IR
A Nin
0x8 2
M gun
F
M o
OV
,
R7

Ad
dr
IR
Nin
A 0x 2
gun
M F5
o
M
OV
,A
Ad
dr
IR
A
M
M Nin
0x8 3
OV gun
5
, o
ad
dr
IR
A
M

Descripción: copias MOV el valor de operando2 en operando1. El valor de


operando2 no se ve afectado. Ambos operando1 y operando2 debe estar en RAM
interna. N banderas se ven afectadas a menos que la instrucción es mover el valor de un
bit en el bit de acarreo en cuyo caso el bit de acarreo se ve afectada o que la instrucción
es mover un valor en el registro PSW (que contiene todas las banderas del programa).

** Nota: En el caso de "addr IRAM MOV, addr IRAM", los bytes operando de la
instrucción se almacenan en orden inverso. Es decir, la instrucción que consiste de los
bytes 0x85, 0x20, 0x50 significa "Mover el contenido de la ubicación de memoria RAM
interna 0x20 interno de ubicación de memoria RAM 0x50", mientras que lo contrario se
presume en general.

Ver también: MOVC, MOVX, XCII, XCHD, PUSH, POP

8051 Conjunto de instrucciones: MOVC

Ope
MO
raci
VC
ón:

Mo
ver
códi
go
Fun byte
ción para
: los
acu
mul
ador
es
MO
VC
Sint A,
axis @ A
: +
regi
stro

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

M
OV
C
Nin
A, 0x9 1
gun
@ 3
o
A+
DP
TR

M
OV
C Nin
0x8 1
A, gun
3
@ o
A+
PC

Descripción: MOVC mueve un byte de memoria de código en el acumulador. La


dirección de memoria Código de la que el byte se moverá se calcula sumando el valor
del acumulador con cualquiera DPTR o el Contador de Programa (PC). En el caso del
contador de programa, es el primer PC incrementa en 1 antes de que se resume con el
acumulador.

Ver también: MOV, MOVX

8051 Conjunto de instrucciones: MOVX

Ope MO
raci VX
ón:

Mo
ver
dato
sa/
desd
e la
Fun
me
ción
mor
:
ia
exte
rna
(XR
AM
)

MO
VX
ope
Sint
ran
axis
do1,
:
ope
ran
do2

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

M
OV
X Nin
0x 1
@ gun
F0
DP o
TR
,A

M
OV
Nin
X 0x 1
gun
@ F2
o
R0,
A
1
M
OV
Nin
X 0xf
gun
@ 3
o
R1,
A

M
OV
X Nin
0x 1
A, gun
E0
@ o
DP
TR

M
OV
Nin
X 0x 1
gun
A, E2
o
@
R0

M
OV
Nin
X 0x 1
gun
A, E3
o
@
R1

Descripción: MOVX mueve un byte o de memoria externa hacia o desde el


acumulador.

Si operando1 es @ DPTR, el acumulador se mueve a la 16-bit de memoria externa


dirección indicada por DPTR. Esta instrucción se utiliza tanto P0 (puerto 0) y P2
(puerto 2) a la salida de la dirección de 16 bits y de datos. Si es operando2 DPTR
entonces el byte se mueve de memoria externa en el acumulador.

Si es operando1 @ @ R0 o R1, el acumulador se mueve a la 8-bits de memoria externa


dirección indicada por el registro especificado. Esta instrucción se utiliza sólo P0
(puerto 0) a la salida de la dirección de 8 bits y de datos. P2 (puerto 2) no se ve
afectado. Si es operando2 @ @ R0 o R1 a continuación, el byte se mueve de memoria
externa en el acumulador.

Ver también: MOV, MOVC


8051 Conjunto de instrucciones: MUL

Ope
MU
raci
L
ón:

Mul
tipli
ca el
Fun
acu
ción
mul
:
ador
por
B

Sint MU
axis L
: AB

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

M C,
0x 1
UL OV
A4
AB

Descripción: Multiples el valor sin signo del acumulador por el valor sin signo del
"registro" B ". El byte menos significativo del resultado se coloca en el acumulador y la
mayoría de los importantes-byte se coloca en el "Registro" B ".

La bandera de acarreo (C) está siempre despejado.

El indicador de desbordamiento (OV) se establece si el resultado es superior a 255 (si


la mayoría de los byte significativo no es cero), de lo contrario se disipa.

Ver también: DIV

8051 Conjunto de instrucciones: NOP

Ope NO
raci
P
ón:

Nin
gun
Fun o,
ción perd
: er el
tiem
po
No
Sint Ope
axis raci
: ón

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Nin
NO 0x0 1
gun
P 0
o

Descripción: NOP, como su nombre lo indica, no causa ninguna operación que tenga
lugar durante un ciclo de la máquina. NOP generalmente se utiliza sólo para la
sincronización. Absolutamente ninguna bandera o de los registros afectados.

8051 Conjunto de instrucciones: ORL

Ope
OR
raci
L
ón:
OR
Fun
bit a
ción
bit
:

Sint OR
axis L
: ope
ran
do1,
ope
ran
do2

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
IR
Nin
A 0x4 2
gun
M 2
o
OR
L,
A

Ad
dr
IR
A
Nin
M 0x4 3
gun
OR 3
o
L,
#
dat
os

OR
L
Nin
A, 0x4 2
gun
# 4
o
dat
os

OR
L
A,
Nin
ad 0x4 2
gun
dr 5
o
IR
A
M
1
OR 0x4 Nin
L
A, gun
6
@ o
R0

OR
L Nin
0x4 1
A, gun
7
@ o
R1

OR
Nin
L 0x4 1
gun
A, 8
o
R0

OR
Nin
L 0x4 1
gun
A, 9
o
R1

OR
Nin
L 0x4 1
gun
A, A
o
R2

OR
Nin
L 0x4 1
gun
A, B
o
R3

OR
Nin
L 0x4 1
gun
A, c
o
R4

OR
Nin
L 0x4 1
gun
A, D
o
R5
1
OR 0x4 Nin
L E gun
A, o
R6

OR
Nin
L 0x4 1
gun
A, F
o
R7

OR
L
C,
0x7 2 C
ad
2
dr
bit
s

OR
L
C, /
0x 2 C
ad
A0
dr
bit
s

Descripción: ORL hace un bit a bit "u" Operación entre operando1 y operando2,
dejando el valor resultante en operando1. El valor de operando2 no se ve afectado.
Lógica "OR", compara los bits de cada operando y establece el bit correspondiente en el
byte resultante Si el bit se estableció en cualquiera de los operandos originales, de lo
contrario el bit resultante se borra.

Ver también: ANL, XRL

8051 Conjunto de instrucciones: POP

Ope
PO
raci
P
ón:
Pop
Valo
Fun
r de
ción
la
:
pila

Sint POP
axis
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
IR Nin
0x 2
A gun
D0
M o
PO
P

Descripción: POP "Pops" el último valor coloca en la pila en el addr IRAM


especificado. En otras palabras, POP carga addr IRAM con el valor de la dirección del
RAM interna a la que apunta el puntero de pila actual. El puntero de pila es entonces
disminuye en 1.

Ver también: PUSH

8051 Conjunto de instrucciones: PUSH

Ope
PU
raci
SH
ón:

Pus
h
Fun
valo
ción
r en
:
la
pila

Sint
PUS
axis
H
:

Ins Op Byt Ba
tru Co es nde
cci de ras
one
s

Ad
dr
IR Nin
0x 2
A gun
C0
M o
PU
SH

Descripción: PUSH "empuja" el valor de la addr IRAM especificada en la pila. PUSH


primero incrementa el valor del puntero de pila en 1, entonces toma el valor almacenado
en addr IRAM y la almacena en memoria RAM interna en la ubicación apuntada por el
puntero de pila se incrementa.

Ver también: POP

8051 Conjunto de instrucciones: RET

Ope
RE
raci
T
ón:

Ret
orno
Fun
de
ción
subr
:
utin
a

Sint
axis RET
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Nin
RE 0x2 1
gun
T 2
o
Descripción: RET se usa para volver de una subrutina denominada anteriormente por
LCALL o ACALL. Ejecución del programa continúa en la dirección que se calcula al
abrir la más alta de 2 bytes de la pila. El más significativo-byte se extrae de la pila
primero, seguido por el byte menos significativo.

Ver también: LCALL, ACALL, RETI

8051 Conjunto de instrucciones: RETI

Ope
RE
raci
TI
ón:
De
regr
eso
Fun
de
ción
inter
:
rupc
ión

Sint
RE
axis
TI
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Nin
RE 0x3 1
gun
TI 2
o

Descripción: RETI se utiliza para volver de una rutina de interrupción del servicio.
RETI primero permite a las interrupciones de la igualdad y menor prioridad a la
interrupción que se está finalizando. La ejecución del programa continúa en la
dirección que se calcula al abrir la más alta de 2 bytes de la pila. El más significativo-
byte se extrae de la pila primero, seguido por el byte menos significativo.

Funciones RETI idéntica a la RET si se ejecuta fuera de una rutina de interrupción del
servicio.

Ver también: RET


8051 Conjunto de instrucciones: RL

Ope
RL
raci
ón:

Rot
ar
Fun acu
ción mul
: ador
rest
ante

Sint RL
axis A
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

RL
0x2 1 C
A
3

Descripción: Cambia los bits del acumulador a la izquierda. De la izquierda-la


mayoría de los bits (bit 7) del acumulador se carga en el bit 0.

Ver también: RLC, RR, RRC

8051 Conjunto de instrucciones: RLC

Ope
RL
raci
C
ón:

Fun Gire
ción a la
: izqu
ierd
a
por
acu
mul
ador
Carr
y

Sint
RL
axis
CA
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

RL
0x3 1 C
C
3
A

Descripción: Cambia los bits del acumulador a la izquierda. De la izquierda-la


mayoría de los bits (bit 7) del acumulador se carga en la bandera de acarreo, y la
bandera original de Carry se carga en el bit 0 del acumulador. Esta función puede ser
utilizada para multiplicar rápidamente un byte por 2.

Ver también: RL, RR, RRC

8051 Conjunto de instrucciones: RR

Ope
RR
raci
ón:

Rot
ar
acu
Fun
mul
ción
ador
:
Der
ech
o
RR
Sint
axis A
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Nin
RR 0x0 1
gun
A 3
o

Descripción: Cambia los bits del acumulador a la derecha. El derecho-la mayoría de


los bits (bit 0) del acumulador se carga en el bit 7.

Ver también: RL, RLC, RRC

8051 Conjunto de instrucciones: RRC

Ope
CR
raci
R
ón:

Rot
ar
acu
mul
Fun
ador
ción
Der
:
ech
o
acar
reo

Sint
RR
axis
CA
:

Ins Op Byt Ba
tru Co es nde
cci de ras
one
s

RR
0x1 1 C
C
3
A

Descripción: Cambia los bits del acumulador a la derecha. El derecho-la mayoría de


los bits (bit 0) del acumulador se carga en la bandera de acarreo, y la bandera original de
Carry se carga en el bit 7. Esta función puede ser utilizada para rápidamente dividir un
byte por 2.

Ver también: RL, RLC, RR

8051 Conjunto de instrucciones: SETB

Ope
SE
raci
TB
ón:

Fun Bit
ción Set
:

Add
r
Sint
poc
axis
o
:
SET
B

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

SE
0x 1 C
TB
D3
C
2
Ad 0x Nin
dr D2 gun
po o
co
SE
TB

Descripción: Establece el bit especificado.

Ver también: CLR

8051 Conjunto de instrucciones: SJMP

Ope
SJ
raci
MP
ón:

Salt
Fun
ar a
ción
cort
:
o

Rel
Sint add
axis r
: SJM
P

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Rel
ad Nin
0x8 2
dr gun
0
SJ o
MP

Descripción: SJMP salta incondicionalmente a la dirección especificada reladdr.


Reladdr debe estar dentro de -128 o 127 bytes de la instrucción que sigue a la
instrucción SJMP.

Ver también: LJMP, AJMP


8051 Conjunto de instrucciones: SUBB

Ope
SU
raci
BB
ón:

Rest
ar
de
acu
mul
ador
Fun con
ción la
: Obt
enci
ón
de
Prés
tam
os

SU
BB
Sint
A,
axis
ope
:
ran
do

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

SU
C,
BB
AC
A, 0x9 2
,
# 4
OV
dat
os
2 C,
SU 0x9 AC
BB 5 ,
A, OV
ad
dr
IR
A
M

SU C,
BB AC
0x9 1
A, ,
6
@ OV
R0

SU C,
BB AC
0x9 1
A, ,
7
@ OV
R1

C,
SU
AC
BB 0x9 1
,
A, 8
OV
R0

C,
SU
AC
BB 0x9 1
,
A, 9
OV
R1

C,
SU
AC
BB 0x9 1
,
A, A
OV
R2

C,
SU
AC
BB 0x9 1
,
A, B
OV
R3

C,
SU
AC
BB 0x9 1
,
A, c
OV
R4
1 C,
SU 0x9 AC
BB D ,
A,
OV
R5

C,
SU
AC
BB 0x9 1
,
A, E
OV
R6

C,
SU
AC
BB 0x9 1
,
A, F
OV
R7

Descripción: SUBB restar el valor del operando desde el valor del acumulador,
dejando el valor resultante en el acumulador. El operando valor no se ve afectado.

El bit de acarreo (C) se establece si un préstamo se requiere para el bit 7, si no se


disipa. En otras palabras, si el valor sin signo de que se resta es mayor que la del
acumulador la bandera de acarreo está establecida.

El Carry auxiliar (AC) bit se establece si un préstamo se requiere para el bit 3, de lo


contrario se disipa. En otras palabras, el bit se establece si se resta el nibble bajo del
valor fue mayor que el nibble bajo del acumulador.

El desbordamiento (OV) bit se establece si un préstamo se requiere para el bit 6 o 7


bits, pero no ambos. En otras palabras, la sustracción de dos bytes de firma, dio un
valor fuera del rango de un byte con signo (-128 a 127). De lo contrario se disipa.

Ver también: Añadir, ADDC, diciembre

8051 Conjunto de instrucciones: SWAP

Ope
SW
raci
AP
ón:

Swa
p
Fun acu
ción mul
: ador
Nib
bles
Sint SW
axis AP
: A

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

SW Nin
0x 1
AP gun
C4
A o

Descripción: los swaps de SWAP bits 0-3 del acumulador con los bits 4-7 del
acumulador. Esta instrucción es idéntica a la de ejecución "RR A" o "RL A" cuatro
veces.

Ver también: RL, RLC, RR, RRC

8051 Conjunto de instrucciones: Instrucción


Indefinido

Und
efin
Ope
ed
raci
Inst
ón:
ruc
ción

Fun Inde
ción fini
: do

Sint
???
axis
:

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s
??
0x 1 C
?
A5

Descripción: El "Indefinido" la instrucción es, como su nombre indica, no una


instrucción documentada. El 8051 soporta 255 instrucciones y OpCode 0xA5 es el
código de operación única que no es utilizada por cualquier función documentada. Dado
que no se documenta ni se define, no se recomienda que se ejecute. Sin embargo,
basado en mi investigación, la ejecución de esta instrucción no definido tarda 1 ciclo de
la máquina y no parece tener efecto sobre el sistema salvo que el bit de acarreo siempre
parece ser establecido.

Nota: Hemos recibido el aporte de un usuario de 8052.com que la instrucción no


definido realmente tiene un formato de Undefined bit1, bit2 y efectivamente copia el
valor de bit2 a bit1. En este caso, sería una instrucción de tres bytes. No hemos tenido
la oportunidad de verificar o refutar este informe, por lo que lo presentamos al mundo
como "información adicional".

Nota: Se ha informado de que Philips 8051 P89C669 modelo utiliza el prefijo 0xA5
instrucción para que el acceso de usuario diferente (ampliada) zona de SFR.

8051 Conjunto de instrucciones: XCII

Ope
XCI
raci
I
ón:

Inte
rca
Fun
mbi
ción
o de
:
Byt
es

XC
H
Sint
A,
axis
regi
:
stro
de

Ins Op Byt Ba
tru Co es nde
cci de ras
one
s

XC
H Nin
0x 1
A, gun
C6
@ o
R0

XC
H Nin
0x 1
A, gun
C7
@ o
R1

XC
Nin
H 0x 1
gun
A, C8
o
R0

XC
Nin
H 0x 1
gun
A, C9
o
R1

XC
Nin
H 0x 1
gun
A, CA
o
R2

XC
Nin
H 0x 1
gun
A, CB
o
R3

XC
Nin
H 0x 1
gun
A, CC
o
R4

XC
Nin
H 0x 1
gun
A, CD
o
R5
1
XC
Nin
H 0x
gun
A, CE
o
R6

XC
Nin
H 0x 1
gun
A, CF
o
R7

XC
H
A,
Nin
ad 0x 2
gun
dr C5
o
IR
A
M

Descripción: Intercambio el valor del acumulador con el valor que figura en el


registro.

Ver también: MOV

8051 Conjunto de instrucciones: XCHD

Ope
XC
raci
HD
ón:

Inte
rca
Fun
mbi
ción
o de
:
dígit
os

XC
HD
Sint A,
axis [@
: R0 /
@
R1]
Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

XC
HD Nin
0x 1
A, gun
D6
@ o
R0

XC
HD Nin
0x 1
A, gun
D7
@ o
R1

Descripción: Intercambio bits 0-3 del acumulador con bits 0-3 de la dirección de la
RAM interna señalado indirectamente por R0 o R1. Bits 4-7 de cada registro se ven
afectados.

Ver también: DA

8051 Conjunto de instrucciones: XRL

Ope
XR
raci
L
ón:
OR
bit a
Fun bit
ción excl
: usiv
o

Sint XR
axis L
: ope
ran
do1,
ope
ran
do2

Ins
tru Op Ba
Byt
cci Co nde
es
one de ras
s

Ad
dr
IR
Nin
A 0x6 2
gun
M 2
o
XR
L,
A

Ad
dr
IR
A
Nin
M 0x6 3
gun
XR 3
o
L,
#
dat
os

XR
L
Nin
A, 0x6 2
gun
# 4
o
dat
os

XR
L
A,
Nin
ad 0x6 2
gun
dr 5
o
IR
A
M
1
XR 0x6 Nin
L 6 gun
A,
@ o
R0

XR
L Nin
0x6 1
A, gun
7
@ o
R1

XR
Nin
L 0x6 1
gun
A, 8
o
R0

XR
Nin
L 0x6 1
gun
A, 9
o
R1

XR
Nin
L 0x6 1
gun
A, a
o
R2

XR
Nin
L 0x6 1
gun
A, B
o
R3

XR
Nin
L 0x6 1
gun
A, C
o
R4

XR
Nin
L 0x6 1
gun
A, D
o
R5

XR
Nin
L 0x6 1
gun
A, E
o
R6
XR
Nin
L 0x6 1
gun
A, F
o
R7

Descripción: XRL hace un bit a bit "o exclusivos" de cooperación entre operando1 y
operando2, dejando el valor resultante en operando1. El valor de operando2 no se ve
afectado. Una lógica "o exclusivos" compara los bits de cada operando y establece el
bit correspondiente en el byte resultante si el bit se estableció en cualquiera (pero no
ambos) de los operandos original, se borra lo contrario, el bit.

S-ar putea să vă placă și