Mnem. |
Op |
NVBDIZC |
A#ZBIRX@ |
~ |
Descripción |
Notas |
ADC s |
6D |
**---** |
-XxX--X- |
4 |
Suma con Acarreo |
A=A+s+C % |
AND s |
2D |
*----*- |
-XxX--X- |
4 |
Y Logico |
A=A&s % |
ASL d |
0E |
*----** |
--xx---- |
6 |
Desplazamiento
a la Izq. Aritmetico |
d={C,d,0}<- |
ASLA |
0A |
*----** |
X------- |
2 |
Desplazamiento
a la Izq. Aritmetico |
A={C,d,0}<- |
BCC a |
90 |
------- |
-----X-- |
2 |
Desvio si no hay
acarreo |
If C=0(4~)% |
BCS a |
B0 |
------- |
-----X-- |
2 |
Desvio si hay acarreo |
If C=1(4~)% |
BEQ a |
F0 |
------- |
-----X-- |
2 |
Desvio si es igual |
If Z=1(4~)% |
BIT s |
2C |
**---*- |
--**---- |
4 |
Bit Test |
A&s |
BMI a |
30 |
------- |
-----X-- |
2 |
Desvio si es Negativo
|
If N=1(4~)% |
BNE a |
D0 |
------- |
-----X-- |
2 |
Desvio si es distinto |
If Z=0(4~)% |
BPL a |
10 |
------- |
-----X-- |
2 |
Desvio si es positivo |
If N=0(4~)% |
BRK |
0 |
--+-1-- |
----X--- |
7 |
Break
(-[S]={PC+2,P}) |
PC=[FFFEH] |
BVC a |
50 |
------- |
-----X-- |
2 |
Desvio si no hay
desborde |
If V=0(4~)% |
BVS a |
70 |
------- |
-----X-- |
2 |
Desvio si hay desborde |
If V=1(4~)% |
CLC |
18 |
0 |
----X--- |
2 |
Borrar acarreo |
C=0 |
CLD |
D8 |
---0--- |
----X--- |
2 |
Borrar modo decimal |
D=0 |
CLI |
58 |
----0-- |
----X--- |
2 |
Activar interrupciones |
I=0 |
CLV |
B8 |
-0----- |
----X--- |
2 |
Borrar desborde |
V=0 |
CMP s |
CD |
*----** |
-XxX--X- |
4 |
Comparar |
A-s |
CPX s |
EC |
*----** |
-X**---- |
4 |
Comparar registro
indice |
X-s |
CPY s |
CC |
*----** |
-X**---- |
4 |
Comparar registro
indice |
Y-s |
DEC d |
CE |
*----*- |
---xx--- |
6 |
Decrementar |
d=d-1 |
DEX |
CA |
*----*- |
----X--- |
2 |
Decrementar registro
indice |
X=X-1 |
DEY |
88 |
*----*- |
----X--- |
2 |
Decrementar registro
indice |
Y=Y-1 |
EOR s |
4D |
*----*- |
-XxX--X- |
4 |
O Exclusivo logico |
A=Axs % |
INC d |
EE |
*----*- |
---xx--- |
6 |
Incrementar |
d=d+1 |
INX |
E8 |
*----*- |
----X--- |
2 |
Incrementar registro
indice |
X=X+1 |
INY |
C8 |
*----*- |
----X--- |
2 |
Incrementar registro
indice |
Y=Y+1 |
JMP s |
4C |
------- |
---*---X |
3 |
Saltar |
! |
JSR s |
20 |
------- |
---*---- |
6 |
Saltar a Subrutina
|
-[S]=PC+2,! |
LDA s |
AD |
*----*- |
-XxX--X- |
4 |
Cargar Acumulador
|
A=s % |
LDX s |
AE |
*----*- |
-Xyy---- |
4 |
Cargar registro
indice |
X=s % |
LDY s |
AC |
*----*- |
-Xxx---- |
4 |
Cargar registro
indice |
Y=s % |
LSR d |
4E |
0----** |
---xx--- |
6 |
Desplazamiento
a la der. logico |
d=->{0,d,C} |
LSRA |
4A |
0----** |
X------- |
2 |
Desplazamiento
a la der. logico |
A=->{0,A,C} |
NOP |
EA |
------- |
----X--- |
2 |
No Operación |
|
ORA s |
0D |
*----*- |
-XxX--X |
4 |
O logico |
A=Avs |
PHA |
48 |
------- |
----X--- |
3 |
Apilar Acumulador
|
-[S]=A |
PHP |
8 |
------- |
----X--- |
3 |
Apilar registro
de estado |
-[S]=P |
PLA |
68 |
------- |
----X--- |
4 |
Desapilar Acumulador |
A=[S]+ |
PLP |
28 |
******* |
----X--- |
4 |
Desapilar Registro
de estado |
P=[S]+ |
ROL d |
2E |
*----** |
--xx---- |
6 |
Rotar a la izq. |
d={C,d}<- |
ROLA |
2A |
*----** |
X------- |
2 |
Rotar Acc. a la
izq. |
A={C,A}<- |
ROR d |
6E |
*----** |
--xx---- |
6 |
Rotar a la der. |
d=->{C,d} |
RORA |
6A |
*----** |
X------- |
2 |
Rotar Acc. a la
der. |
A=->{C,A} |
RTI |
40 |
******* |
----X--- |
6 |
Retorno de interrupción |
{PC,P}=[S]+ |
RTS |
60 |
------- |
----X--- |
6 |
Retorno de subrutina |
PC={[S]+}+1 |
SBC s |
ED |
*----** |
-XxX--X- |
4 |
Resta con acarreo |
A=A-s-C % |
SEC |
38 |
1 |
----X--- |
2 |
Setear Acarreo |
C=1 |
SED |
F8 |
---1--- |
----X--- |
2 |
Setear modo decimal |
D=1 |
SEI |
78 |
----1-- |
----X--- |
2 |
deshabilitar interrupciones |
I=1 |
STA d |
8D |
------- |
--xX--X- |
4 |
Guardar acumulador |
d=A |
STX d |
8E |
------- |
--y*---- |
4 |
Guardar registro
indice |
d=X |
STY d |
8C |
------- |
--x*---- |
4 |
Guardar registro
indice |
d=Y |
TAX |
AA |
*----*- |
----X--- |
2 |
Transferir Acumulador |
X=A |
TAY |
A8 |
*----*- |
----X--- |
2 |
Transferir Acumulador |
Y=A |
TSX |
BA |
*----*- |
----X--- |
2 |
Transferir puntero
de pila |
X=S |
TXA |
8A |
*----*- |
----X--- |
2 |
Transferir registro
indice |
A=X |
TXS |
9A |
------- |
----X--- |
2 |
Transferir registro
indice |
S=X |
TYA |
98 |
*----*- |
----X--- |
2 |
Transferir registro
indice |
A=Y |
Referencias: |
|
XX |
|
|
X |
opcode
hexadecimal/no. de ciclos |
Flags: |
|
- |
|
|
Flag
no afectado |
|
* |
|
|
Flag
afectado |
|
0 |
|
|
Flag reseteado |
|
1 |
|
|
Flag seteado
|
|
+ |
|
|
Flag seteado
en la pila |
N |
|
|
|
Estado
Negativo (Bit 7) |
V |
|
|
|
Estado
de desborde (Bit 6) |
B |
|
|
|
Indicador
de comando Break (Bit 4) |
D |
|
|
|
Control
de modo Decimal (Bit 3) |
I |
|
|
|
Control
de deshabilitación de Interrupciones (Bit 2) |
Z |
|
|
|
Estado
Cero (Bit 1) |
C |
|
|
|
Estado
del Acarreo (Bit 0) |
|
A#ZBIRX@ |
Descripción |
Opcode |
~s |
|
X |
All mode(s)
valid |
|
|
|
* |
Non-indexed
mode valid |
|
|
|
x |
X/non-indexed
mode valid |
|
|
|
y |
Y/non-indexed
mode valid |
|
|
|
|
Sumar XXH
al opcode |
+XXH |
|
|
|
Resta XXH
al opcode |
-XXH |
|
|
|
Sumar X
al no. de ciclos |
|
+X |
|
|
Restar
X al no. de ciclos |
|
-X |
Modos de direccionamiento: |
A |
A------- |
Acumulador |
|
|
#n |
-#------ |
Inmediato |
-04H |
-2 |
<n |
--*----- |
Pagina
Cero |
-08H |
-1 |
n |
--*----- |
Pagina
Cero (modo DIRECTO) |
-08H |
-1 |
n,X |
--x----- |
Pagina
Cero indexada (X) |
+08H |
0 |
n,Y |
--y----- |
Página
Cero indexada (Y) |
+08H |
0 |
>nn
|
---*---- |
Absoluto |
+00H |
0 |
nn |
---*---- |
Absoluto
(modo EXTENDIDO) |
+00H |
0 |
nn,X |
---x---- |
Absoluto
indexado (X) |
+10H |
0 |
nn,Y |
---y---- |
Absoluto
indexado (Y) |
+0CH |
0 |
LDX nn,Y
|
---y---- |
Igual |
+10H |
0 |
|
----I--- |
Implicito |
|
|
a |
-----R-- |
Relativo(PC=PC+1+offset) |
|
2 |
[nn,X]
|
------x- |
Indexado
indirecto (X) |
-0CH |
2 |
[nn],Y
|
------y- |
Indirecto
indexado (Y) |
+04H |
1 |
[nn] |
-------@ |
Absoluto
indirecto |
+20H |
2 |
Directivas
del ensamblador |
BYTE n(,...)
|
Byte(s) (8-bit) |
|
BYTE 'string'(,...)
|
Cadena(s)
de caractares |
|
DIRECT
|
Modo de direccionamiento Pagina Cero |
|
EXTEND
|
Modoe de direccionamiento Absoluto |
|
RMB nn(,...)
|
Reservar Memoria |
|
WORD nn(,...)
|
Palabras(s) (16-bit) |
|
Registros |
A |
Acumulador (8-bit) |
|
P |
Registro de Estado del Procesador (8-bit) |
|
PC |
Contador de Programa (16-bit) |
|
S |
Puntero de pila (9-bit, MSB=1) |
|
X |
Registro Indice X (8-bit) |
|
Y |
Registro Indice Y (8-bit) |
|
Abreviaciones |
a |
Dirección Relativa (-128 a +127) |
|
d |
Destino |
|
n |
Expresión de 8-bits (0 a 255) |
|
nn |
Expresión de 16-bits (0 a 65535) |
|
s |
Fuente |
|
string
|
Cadena de caracteres ASCII |
|
+ |
Suma |
|
- |
Resta |
|
* |
Multiplicación |
|
/ |
División |
|
& |
Y logico |
|
~ |
NO logico |
|
v |
O logico |
|
x |
O exclusivo logico |
|
<- |
Rotar
a la izquierda |
|
-> |
Rotar a la derecha |
|
[ ] |
Direccionamiento Indirecto |
|
[ ]+ |
Direccionamiento Indirecto, auto-incremento |
|
-[ ] |
Auto-decremento, direccionamiento indirecto |
|
{ } |
Combinación de operandos |
|
$ |
Contenido del contador de Programa |
|
% |
~s = ~s+1 si se cruza el limite de pagina |
|
! |
PC = dirección efectiva de la fuente |
|
Vectores del
sistema |
0000H a
00FFH |
Pagina 0 (ver direccionamiento pagina cero) |
|
0100H a
01FFH |
Pagina 1 (area de pila, 01FFH = inicio) |
|
XX00H a
XXFFH |
Pagina n (donde n=XXH) |
|
FFFAH a
FFFBH |
Vector de la interrupción no enmascarable (NMI) |
|
FFFCH a
FFFDH |
Vector de Reset (RES) |
|
FFFEH a
FFFFH |
Vector de Petición de Interrupción (IRQ) |
|
FFFEH a
FFFFH |
Vector del comando Break (ver BRK) |
|
|