Está en la página 1de 7

Set de Instrucciones Familia de Microcontroladores FREESCALE HC08

Nemnico Operacin Funcin


Banderas
aectadas en
CCR
Modo de
!ireccionamiento
C

d
i
"
o

d
e
O
p
e
r
a
c
i

n
#

C
i
c
l
o
s
$ H I N % C
ADC #opr8
ADC opr8
ADC opr16
ADC ,X
ADC opr8,X
ADC opr16,X
ADC opr8,SP
ADC opr16,SP
Suma con acarreo
(Add with Carry)
A = A + C + opr8
A = A + C + (opr8)
A = A + C + (opr16)
A = A + C + (X)
A = A + C + (opr8 + X)
A = A + C + (opr16 + X)
A = A + C + (opr8 + SP)
A = A + C + (opr16 + SP)
! ! ! ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed, no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with $it o))*et
(SP+) SP with $it o))*et
A,
-,
C,
.,
D,
&,
,&&,
,&D,
+
/
0
+
/
0
0
1
ADD #opr8
ADD opr8
ADD opr16
ADD ,X
ADD opr8,X
ADD opr16,X
ADD opr8,SP
ADD opr16,SP
Suma *in acarreo
(Add without Carry)
A = A + opr8
A = A + (opr8)
A = A + (opr16)
A = A + (X)
A = A + (opr8 + X)
A = A + (opr16 + X)
A = A + (opr8 + SP)
A = A + (opr16 + SP)
! ! ! ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed, no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with $it o))*et
(SP+) SP with $it o))*et
A-
--
C-
.-
D-
&-
,&&-
,&D-
+
/
0
+
/
0
0
1
A"S #opr8
Suma entre 2a3or "nmediato con *i4no y SP
(Add "mmediate 2a3ue (*i4ned) to SP)
SP5SP6 = SP5SP6 + opr8 ("##) 8 $it immediate A7 +
A"X #opr8
Suma entre 2a3or "nmediato con *i4no y
X
(Add "mmediate 2a3ue (*i4ned) to "nde(
%e4i*ter X)
5X = 5X + opr8 ("##) 8 $it immediate A. +
A8D #opr8
A8D opr8
A8D opr16
A8D ,X
A8D opr8,X
A8D opr16,X
A8D opr8,SP
A8D opr16,SP
.unci9n 694ica A8D
(6o4ica3 A8D)
A = A : opr8
A = A : (opr8)
A = A : (opr16)
A = A : (X)
A = A : (opr8 + X)
A = A : (opr16 + X)
A = A : (opr8 + SP)
A = A : (opr16 + SP)
; ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed, no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with8 $it o))*et
(SP+) SP with 16 $it o))*et
A0
-0
C0
.0
D0
&0
,&&0
,&D0
+
/
0
+
/
0
0
1
AS6 opr8
AS6 ,X
AS6 opr8,X
AS6 opr8,SP
Corrimiento Aritm<tico a 3a i=>uierda
(Arithmetic Shi)t 6e)t)
C (opr8) ;
C (X) ;
C (opr8 + X) ;
C (opr8 + SP) ;
! ! ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
(SP1) SP with 8 $it o))*et
/8
78
68
,&68
0
/
0
1
AS6A
Corrimiento Aritm<tico a 3a i=>uierda de3
Acumu3ador
(Arithmetic Shi)t 6e)t Acc)
C A ; ! ! ! ! ("8) inherent mode 08 1
AS6X
Corrimiento Aritm<tico a 3a i=>uierda de X
(Arithmetic Shi)t 6e)t X)
C X ; ! ! ! ! ("8) inherent mode 18 1
AS% opr8
AS% ,X
AS% opr8,X
AS% opr8,SP
Corrimiento Aritm<tico a 3a derecha
(Arithmetic Shi)t %i4ht)
#7 (opr8) C
#7 (X) C
#7 (opr8 + X) C
#7 (opr8 + SP) C
! ! ! !
(D"%) 8 $it direct
("X) inde(ed, no o))*et
("X1) inde(ed, 8 $it o))*et
(SP1) SP with 8 $it o))*et
/7
77
67
,&67
0
/
0
1
AS%A
Corrimiento Aritm<tico a 3a derecha de3
Acumu3ador
(Arithmetic Shi)t %i4ht Acc)
A7 A C ! ! ! ! ("8) inherent mode 07 1
AS%X
Corrimiento Aritm<tico a 3a derecha de X
(Arithmetic Shi)t %i4ht X)
X7 X C ! ! ! ! ("8) inherent mode 17 1
-CC re3
-i)urcar *i Acarreo = ;
(-ranch i) Carry -it C3ear)
") C = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +0 /
-C6% n,opr8
-orrar -it n en #emoria
(C3ear -it n in #emory)
#n ;? (n = ;,1,@@7)
#(opr8) can $e any %A# or
"AB re4i*ter addre**
(D"%) 1 $it direct
11,1/,
11,17,
1,,1-,
1D,1.
0
-CS re3
-i)urcar *i Acarreo = 1
(-ranch i) Carry -it Set)
") C = 1 then -ranch -ranch
= PC + + + re3
(%&6) re3ati2e addre**in4 +1 /
-&C re3
-i)urcar *i e* i4ua3
(-ranch i) &>ua3)
") D = 1 then -ranch -ranch
= PC + + + re3
(%&6) re3ati2e addre**in4 +7 /
-E& re3
-i)urcar *i e* (operando* con *i4no)
(-ranch i) Ereater 'han or &>ua3 'o)
") (8 F) = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 ,; /
-E' re3
-i)urcar *i e* G (operando* con *i4no)
(-ranch i) Ereater 'han)
") (D : (8 F)) = ; then
-ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 ,+ /
-CC re3
-i)urcar *i Acarreo "ntermedio = ;
(-ranch i) a3) Carry -it C3ear)
") = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +8 /
-CS re3
-i)urcar *i Acarreo "ntermedio = 1
(-ranch i) a3) Carry -it Set)
") = 1 then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +, /
Nemnico Operacin Funcin
Banderas
aectadas en
CCR
Modo de
!ireccionamiento
C

d
i
"
o

d
e
O
p
e
r
a
c
i

n
#

C
i
c
l
o
s
$ H I N % C
-" re3
-i)urcar *i e*tH por encima
(-ranch i) i4her)
") (C : D) = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 ++ /
-S re3
-i)urcar *i e*ta por encima o e* i4ua3
(-ranch i) i4her or Same)
") C = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +0 /
-" re3
-i)urcar *i Pin "%C = 1
(-ranch i) "%C Pin i* i4h)
") "%C = 1 then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +. /
-"6 re3
-i)urcar *i Pin "%C = ;
(-ranch i) "%C Pin i* 6ow)
") "%C = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +& /
-"' #opr8
-"' opr8
-"' opr16
-"' ,X
-"' opr8,X
-"' opr16,X
-"' opr8,SP
-"' opr16,SP
-it 'e*t
A : opr8
A : (opr8)
A : (opr16)
A : (X)
A : (opr8 + X)
A : (opr16 + X)
A : (opr8 + SP)
A : (opr16 + SP)
; ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
A1
-1
C1
.1
&1
D1
,&&1
,&D1
+
/
0
+
/
0
0
1
-6& re3
-i)urcar *i e* (operando* con *i4no)
(-ranch i) 6e** 'han or &>ua3 'o)
") (D : (8 F)) = 1 then
-ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 ,/ /
-6B re3
-i)urcar *i e*tH por de$aIo
(-ranch i) 6ower)
") C = 1 then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +1 /
-6S re3
-i)urcar *i e*ta por de$aIo o e* i4ua3
(-ranch i) 6ower or Same)
") (C : D) = 1 then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +/ /
-6' re3
-i)urcar *i e* J (operando* con *i4no)
(-ranch i) 6e** 'han)
") (8 F) = 1 then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 ,1 /
-#C re3
-i)urcar *i #H*cara de "nterrupci9n = ;
(-ranch i) "nterrupt #a*K C3ear)
") " = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +C /
-#" re3 -i)urcar *i ne4ati2o
") 8 = 1 then -ranch -ranch
= PC + + + re3
(%&6) re3ati2e addre**in4 +- /
-#S re3
-i)urcar *i #H*cara de "nterrupci9n = 1
(-ranch i) "nterrupt #a*K Set)
") " = 1 then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +D /
-8& re3
-i)urcar *i no e* i4ua3
(-ranch i) 8ot &>ua3)
") D = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +6 /
-P6 re3
-i)urcar *i e* po*iti2o
(-ranch i) P3u*)
") 8 = ; then -ranch
-ranch = PC + + + re3
(%&6) re3ati2e addre**in4 +A /
-%A re3
-i)urcar Siempre
(-ranch A3way*)
PC = PC + + + re3 (%&6) re3ati2e addre**in4 +; /
-%C6%
n,opr8,re3
-i)urcar *i -it n en #emoria = ;
(-ranch i) -it n in #emory C3ear)
") #n = ; then -ranch
-ranch = PC + / + re3
! (D"%) 1 $it Direct
;1,;/,;1,
;7,;,,;-
;D,;.
1
-%8 re3
8unca $i)urcar
(-ranch 8e2er)
PC = PC + + (%&6) re3ati2e mode +1 /
-%S&'
n,opr8,re3
-i)urcar *i -it n en #emoria = 1
(-ranch i) -it n in #emory Set)
") #n = 1 then -ranch
-ranch = PC + / + re3
! (D"%) 1 $it Direct
;;,;+,;0,
;6,;8,;A
;C,;&
1
-S&' n,opr8
acer -it n =1 en #emoria
(Set -it n in #emory)
#n JLLL 1? ?(n = ;,1,@@7)
#(opr8) can $e any %A# or
"AB re4i*ter addre**
(D"%) 1 $it direct
1;,1+,
10,16,
18,1A,
1C,1&
0
-S% re3
-i)urcar a Su$rutina
(-ranch to Su$routine)
PC = PC + +
Pu*h PC6 ? SP = SP L 1
Pu*h PC ? SP = SP M 1
PC = PC + re3
(%&6) re3ati2e mode AD 0
C-&C
opr8,re3
C-&C X+,re3
C-&C
opr8,X+,re3

C-&C
opr8,SP,re3
Compara y *a3ta *i e* "4ua3
(Compare and -ranch i) &>ua3)
") AL (opr8) = ; then -ranch
-ranch = PC + / + re3
") A L (X) = ; then -ranch
-ranch = PC + + + re3
X = X + 1
") A L (opr8 + X) = ; then
-ranch
-ranch = PC + + + re3
X = X + 1
") A L (opr8 + SP) = ; then
-ranch
-ranch = PC + 0 + re3
(D"%) 8 -it Direct
("X+) inde(ed with po*t
increment
("X1+) inde(ed, 8 $it o))*et
with po*t increment
(SP1) StacK with 8 $it
o))*et
/1
71
61
,&61
1
0
1
6
C-&CA Compara y *a3ta *i e* "4ua3 ") A L opr8 = ; then -ranch ("##) 8 -it "mmediate 01 0
#opr8,re3 (Compare and -ranch i) &>ua3) -ranch = PC + / + re3
C-&CX
#opr8,re3
Compara y *a3ta *i e* "4ua3
(Compare and -ranch i) &>ua3)
") X L opr8 = ; then -ranch
-ranch = PC + / + re3
("##) 8 -it "mmediate 11 0
Nemnico Operacin Funcin
Banderas
aectadas en
CCR
Modo de
!ireccionamiento
C

d
i
"
o

d
e
O
p
e
r
a
c
i

n
#

C
i
c
l
o
s
$ H I N % C
C6C
-orrar -it de Acarreo
(C3ear Carry -it)
C ; ; ("8) "nherent Addre**in4 ,8 1
C6"
-orrar #H*cara de "nterrupci9n
(C3ear "nterrupt #a*K -it)
" ; ; ("8) "nherent Addre**in4 ,A 1
C6% opr8
C6% ,X
C6% opr8,X
C6% opr8,SP
-orrar
(C3ear)
(opr8) = ;
(X) = ;
(opr8 + X) = ;
(opr8 + SP) = ;
; ; 1
(D"%) 8 -it Direct
("X) inde(ed, no o))*et
("X1) inde(ed, 8 $it o))*et
(SP1) SP, 8 $it o))*et
/.
7.
6.
,&6.
/
+
/
0
C6%A
-orrar Acumu3ador
(C3ear Accumu3ator)
A = ; ; ; 1 ("8) inherent addre**in4 0. 1
C6%X
-orrar %e4i*tro "ndice X
(C3ear "nde( %e4i*ter X)
X = ; ; ; 1 ("8) inherent addre**in4 1. 1
C6%
-orrar %e4i*tro "ndice
(C3ear "nde( %e4i*ter )
= ; ; ; 1 ("8) inherent addre**in4 8C 1
C#P #opr8
C#P opr8
C#P opr16
C#P ,X
C#P opr8,X
C#P opr16,X
C#P opr8,SP
C#P opr16,SP
Comparar Acumu3ador con #emoria
(Compare Accumu3ator with #emory)
A L opr8
A L (opr8)
A L (opr16)
A L (X)
A L (opr8 + X)
A L (opr16 + X)
A L (opr8 + SP)
A L (opr16 + SP)
! ! ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP, 8 $it o))*et
(SP+) SP, 16 $it o))*et
A1
-1
C1
.1
&1
D1
,&&1
,&D1
+
/
0
+
/
0
0
1
CB# opr8
CB# ,X
CB# opr8,X
CB# opr8,SP
Comp3emento a uno
(BneN* Comp3ement)
(opr8) = O.. L (opr8)
(X) = O.. L (X)
(opr8+X) = O..L(opr8+X)
(opr8+SP) = O..L(opr8+SP)
; ! ! 1
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed,8 $it o))*et
(SP1) SP, 8 $it o))*et
//
7/
6/
,&6/
0
/
0
1
CB#A
Comp3emento a uno de3 Acumu3ador
(BneN* Comp3ement Acc@)
A = O.. L A ; ! ! 1 ("8) inherent addre**in4 0/ 1
CB#X
Comp3emento a uno de X
(BneN* Comp3ement X)
X = O.. L X ; ! ! 1 ("8) inherent addre**in4 1/ 1
CPX #opr16
CPX opr16
Comparar 5X con #emoria
(Compare "nde( %e4i*ter with #emory)
X L opr16
X L (opr16)
! ! ! !
("##) 16 $it immediate
(D"%) direct, 16 $it data
61
71
/
0
CPX #opr8
CPX opr8
CPX opr16
CPX ,X
CPX opr8,X
CPX opr16,X
CPX opr8,SP
CPX opr16,SP
Comparar %e4i*tro X con #emoria
(Compare "nde( %e4i*ter X with #emory)
X L opr8
X L (opr8)
X L (opr16)
X L (X)
X L (opr8 + X)
X L (opr16 + X)
X L (opr8 + SP)
X L (opr16 + SP)
! ! ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP, 8 $it o))*et
(SP+) SP, 16 $it o))*et
A/
-/
C/
./
&/
D/
,&&/
,&D/
+
/
0
+
/
0
0
1
DAA
AIu*te Decima3 de3 Acumu3ador
(Decima3 AdIu*t Accumu3ator)
A1; P ! ! ! ("8) inherent addre**in4 7+ +
D-8D opr8,re3
D-8D X,re3
D-8D
opr8,X,re3
D-8D
opr8,SP,re3
Decrementar y $i)urcar
*i ;
(Decrement and -ranch i) 8ot Dero)
(opr8) = (opr8) M 1
") (opr8) ; then -ranch
-ranch = PC + / + re3
(X) = (X) M 1
") (X) ; then -ranch
-ranch = PC + / + re3
(opr8+X) = (opr8+X) M 1
") (opr8+X) ; then -ranch
-ranch = PC + 0 + re3
(opr8+SP) = (opr8+SP) L 1
") opr8 ; then -ranch
-ranch = PC + 0 + re3
(D"%) direct mode
("X) inde(ed, no o))*et
("X1) inde(ed,8L$it o))*et
(SP1) SP , 8L$it o))*et
/-
7-
6-
,&6-
1
0
0
6
D-8DA re3
Decrementar e3 Acumu3ador y $i)urcar *i
;
(Decrement and -ranch i) Acc 8ot Dero)
A = A L 1
") A ; then -ranch
-ranch = PC + + + re3
("8) inherent mode 0- /
D-8DX re3
Decrementar X y $i)urcar
*i ;
(Decrement and -ranch i) X 8ot Dero)
X = X M 1
") X ; then -ranch
-ranch = PC + + + re3
("8) inherent mode 1- /
D&C opr8
D&C ,X
D&C opr8,X
Decrementar
(Decrement)
(opr8) = (opr8) M 1
(X) = (X) M 1
(opr8+X) = (opr8+X) M 1
! ! ! (D"%) 8 $it direct
("X) inde(ed,no o))*et
("X1) inde(ed,8 $it o))*et
/A
7A
6A
0
/
0
D&C opr8,SP (opr8+SP) = (opr8+SP) L 1 (SP1) SP with 8 $it o))*et ,&6A 1
D&CA
Decrementar Acumu3ador
(Decrement Accumu3ator)
A = A L 1 ! ! ! ("8) inherent mode 0A 1
D&CX
Decrementar X
(Decrement "nde( %e4i*ter)
X = X L 1 ! ! ! ("8) inherent mode 1A 1
Nemnico Operacin Funcin
Banderas
aectadas en
CCR
Modo de
!ireccionamiento
C

d
i
"
o

d
e
O
p
e
r
a
c
i

n
#

C
i
c
l
o
s
$ H I N % C
D"F
Di2i*i9n
(Di2ide)
A = 5A = %e*iduo
X
! ! ("8) inherent addre**in4 1+ 7
&B% #opr8
&B% opr8
&B% opr16
&B% ,X
&B% opr8,X
&B% opr16,X
&B% opr8,SP
&B% opr16,SP
B% &(c3u*i2a entre Acumu3ador y
#emoria
(&(c3u*i2eLB% #emory with
Accumu3ator)
A = A opr8
A = A (opr8)
A = A (opr16)
A = A (X)
A = A (opr8 + X)
A = A (opr16 + X)
A = A (opr8 + SP)
A = A (opr16 + SP)
; ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
A8
-8
C8
.8
&8
D8
,&&8
,&D8
+
/
0
+
/
0
0
1
"8C opr8
"8C ,X
"8C opr8,X
"8C opr8,SP
"ncrementar
("ncrement)
(opr8) = (opr8)+ 1
(X) = (X) + 1
(opr8+X) = (opr8+X) + 1
(opr8+SP) = (opr8+SP)+ 1
! ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed,8 $it o))*et
(SP1) SP with 8 $it o))*et
/C
7C
6C
,&6C
0
/
0
1
"8CA
"ncrementar Acumu3ador
("ncrement Accumu3ator)
A = A + 1 ! ! ! ("8) inherent addre**in4 0C 1
"8CX
"ncrementar X
("ncrement "nde( %e4i*ter )
X = X + 1 ! ! ! ("8) inherent addre**in4 1C 1
Q#P opr8
Q#P opr16
Q#P ,X
Q#P opr8,X
Q#P opr16,X
Sa3to "ncondiciona3
(Qump to Addre**)
PC = opr8
PC = opr16
PC = (X)
PC = (X + opr8)
PC = (X + opr16)
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
-C
CC
.C
&C
DC
+
/
+
/
0
QS% opr8
QS% opr16
QS% ,X
QS% opr8,X
QS% opr16,X
Sa3to a *u$rutina
(Qump to Su$routine)
PC = opr8
PC = opr16
PC = (X)
PC = (X + opr8)
PC = (X + opr16)
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
-D
CD
.D
&D
DD
0
1
0
1
6
6DA #opr8
6DA opr8
6DA opr16
6DA ,X
6DA opr8,X
6DA opr16,X
6DA opr8,SP
6DA opr16,SP
Car4ar e3 Acumu3ador
(6oad Accumu3ator )rom #emory)
A = opr8
A = (opr8)
A = (opr16)
A = (X)
A = (opr8+ X)
A = (opr16+ X)
A = (opr8+ SP)
A = (opr16+ SP)
; ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
A6
-6
C6
.6
&6
D6
,&&6
,&D6
+
/
0
+
/
0
0
1
6DX #opr16
6DX opr16
Car4ar X
(6oad "nde( %e4i*ter 5X )rom #emory)
X = opr16
X = (opr165opr16+1)
; ! !
("##) 16 $it immediate
(D"%) direct 16 $it data
01
11
/
0
6DX #opr8
6DX opr8
6DX opr16
6DX ,X
6DX opr8,X
6DX opr16,X
6DX opr8,SP
6DX opr16,SP
Car4ar X
(6oad "nde( %e4i*ter X )rom #emory)
X = opr8
X = (opr8)
X = (opr16)
X = (X)
X = (opr8 + X)
X = (opr16 + X)
X = (opr8 + SP)
X = (opr16 + SP)
; ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
A&
-&
C&
.&
&&
D&
,&&&
,&D&
+
/
0
+
/
0
0
1
6S6 opr8
6S6 ,X
6S6 opr8,X
6S6 opr8,SP
Corrimiento 694ico a 3a "=>uierda
(6o4ica3 Shi)t 6e)t)
C (opr8) ;
C (X) ;
C (opr8 + X) ;
C (opr8 + SP) ;
! ! ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
(SP1) SP with 8 $it o))*et
/8
78
68
,&68
0
/
0
1
6S6A
Corrimiento 694ico a 3a "=>uierda de A
(6o4ica3 Shi)t 6e)t Accumu3ator)
C A ; ! ! ! ! ("8) inherent addre**in4 08 1
6S6X
Corrimiento 694ico a 3a "=>uierda de X
(6o4ica3 Shi)t 6e)t "nde( %e4i*ter X)
C X ; ! ! ! ! ("8) inherent mode 18 1
6S% opr8
6S% ,X
6S% opr8,X
6S% opr8,SP
Corrimiento 694ico a 3a Derecha
(6o4ica3 Shi)t %i4ht)
; (opr8) C
; (X) C
; (opr8 + X) C
; (opr8 + SP) C
! ; ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
(SP1) SP with 8 $it o))*et
/0
70
60
,&60
0
/
0
1
6S%A
Corrimiento 694ico a 3a Derecha de A
(6o4ica3 Shi)t %i4ht Accumu3ator)
; A C ! ; ! ! ("8) inherent addre**in4 00 1
6S%X
Corrimiento 694ico a 3a Derecha de X
(6o4ica3 Shi)t %i4ht "nde( %e4i*ter X)
; X C ! ; ! ! ("8) inherent addre**in4 10 1
#BF #o2er -yte (opr8R+) = opr8R1 ; ! ! ("#D) immediateLdirect 6& 0
#opr8R1,opr8R+
#BF
opr8R1,opr8R+
#BF X+,opr8
#BF opr8,X+
(#o2e Data -yte)
(opr8R+) = (opr8R1)
(opr8) = (X)
X = X + 1
(X) = (opr8)
X = X + 1
(DD) direct to direct
("X+D) inde(ed to direct
with po*t increment
(D"X+) direct to inde(ed
with po*t increment
0&
7&
1&
1
0
0
Nemnico Operacin Funcin
Banderas
aectadas en
CCR
Modo de
!ireccionamiento
C

d
i
"
o

d
e
O
p
e
r
a
c
i

n
#

C
i
c
l
o
s
$ H I N % C
#P6
#u3tip3icaci9n *in *i4no
(Pn*i4ned #u3tip3y)
X5A = A ! X ; ; ("8) inherent addre**in4 0+ 1
8&E opr8
8&E ,X
8&E opr8,X
8&E opr8,SP
Comp3emento a Do*
(8e4ate ('woN* Comp3ement))
(opr8) = O;; L (opr8)
(X) = O;; L (X)
(opr8+X) = O;; L (opr8+X)
(opr8+SP) = O;; L (opr8+SP)
! ! ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed,8 $it o))*et
(SP1) SP with 8 $it o))*et
/;
7;
6;
,&6;
0
/
0
1
8&EA
Comp3emento a Do* de3 Acumu3ador
('woN* Comp3ement Accumu3ator)
A = O;; L A ! ! ! ! ("8) inherent addre**in4 0; 1
8&EX
Comp3emento a Do* de X
('woN* Comp3ement "nde( %e4i*ter X)
X = O;; L X ! ! ! ! ("8) inherent addre**in4 1; 1
8BP 8o Bperaci9n Doe* nothin4 ("8) inherent addre**in4 ,D 1
8SA 8i$$3e Swap Accumu3ator A = AS/5;T5AS750T ("8) inherent addre**in4 6+ /
B%A #opr8
B%A opr8
B%A opr16
B%A ,X
B%A opr8,X
B%A opr16,X
B%A opr8,SP
B%A opr16,SP
B% entre Acumu3ador y #emoria
("nc3u*i2eLB% Accumu3ator and #emory)
A = A or opr8
A = A or (opr8)
A = A or (opr16)
A = A or (X)
A = A or (opr8 + X)
A = A or (opr16 + X)
A = A or (opr8 + SP)
A = A or (opr16 + SP)
; ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(edA8 $it o))*et
("X+) inde(edA16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
AA
-A
CA
.A
&A
DA
,&&A
,&DA
+
/
0
+
/
0
0
1
PSA
Euardar e3 Acumu3ador en 3a pi3a
(Pu*h Accumu3ator onto StacK )
Pu*h A to *tacK
SP = SP L 1
("8) inherent addre**in4 87 +
PS
Euardar en 3a pi3a
(Pu*h "nde( %e4i*ter onto StacK)
Pu*h to *tacK
SP = SP L 1
("8) inherent addre**in4 8- +
PSX
Euardar X en 3a pi3a
(Pu*h "nde( %e4i*ter X onto StacK)
Pu*h X to *tacK
SP = SP L 1
("8) inherent addre**in4 8, +
PP6A
Sacar Acumu3ador de 3a pi3a
(Pu33 Accumu3ator )rom StacK)
SP = SP + 1
Pu33 A
("8) inherent addre**in4 86 +
PP6
Sacar de 3a pi3a
(Pu33 "nde( %e4i*ter )rom StacK)
SP = SP + 1
Pu33
("8) inherent addre**in4 8A +
PP6X
Sacar X de 3a pi3a
(Pu33 "nde( %e4i*ter X )rom StacK)
SP = SP + 1
Pu33 X
("8) inherent addre**in4 88 +
%B6 opr8
%B6 ,X
%B6 opr8,X
%B6 opr8,SP
%otaci9n a 3a i=>uierda a tra2<* de3
Acarreo
(%otate 6e)t throu4h Carry)
C (opr8) C
C (X) C
C (opr8 + X) C
C (opr8 + SP) C
! ! ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed 8 $it o))*et
(SP1) SP with 8 $it o))*et
/,
7,
6,
,&6,
0
/
0
1
%B6A
%otaci9n a 3a i=>uierda de3 Acumu3ador a
tra2<* de3 Acarreo
(%otate 6e)t Accumu3ator)
C A C ! ! ! ! ("8) inherent addre**in4 0, 1
%B6X
%otaci9n a 3a i=>uierda de X a tra2<* de3
Acarreo
(%otate 6e)t "nde( %e4i*ter X)
C X C ! ! ! ! ("8) inherent addre**in4 1, 1
%B% opr8
%B% ,X
%B% opr8,X
%B% opr8,SP
%otaci9n a 3a derecha a tra2<* de3 Acarreo
(%otate %i4ht throu4h Carry)
C (opr8) C
C (X) C
C (opr8 + X) C
C (opr8 + SP) C
! ! ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed 8 $it o))*et
(SP1) SP with 8 $it o))*et
/6
76
66
,&66
0
/
0
1
%B%A
%otaci9n a 3a derecha de3 Acumu3ador a
tra2<* de3 Acarreo
(%otate %i4ht Accumu3ator)
C A C ! ! ! ! ("8) inherent addre**in4 06 1
%B%X
%otaci9n a 3a derecha de X a tra2<* de3
Acarreo
(%otate %i4ht "nde( %e4i*ter X)
C X C ! ! ! ! ("8) inherent addre**in4 16 1
%SP
"nicia3i=ar SP
(%e*et StacK Pointer)
SP = O.. ("8) inherent addre**in4 ,C 1
%'" %etorno de "nterrupci9n
(%eturn )rom "nterrupt)
SP = SP + 1
Pu33 CC% ?
SP = SP + 1
Pu33 A
SP = SP + 1
Pu33 X
SP = SP + 1
! ! ! ! ! ! ("8) inherent addre**in4 8; 7
Pu33 PC
SP = SP + 1
Pu33 PC6
%'S
%etorno de Su$rutina
(%eturn )rom Su$routine)
SP = SP + 1
Pu33 PC
SP = SP + 1
Pu33 PC6
("8) inherent addre** 81 0
Nemnico Operacin Funcin
Banderas
aectadas en
CCR
Modo de
!ireccionamiento
C

d
i
"
o

d
e
O
p
e
r
a
c
i

n
#

C
i
c
l
o
s
$ H I N % C
S-C #opr8
S-C opr8
S-C opr16
S-C ,X
S-C opr8,X
S-C opr16,X
S-C opr8,SP
S-C opr16,SP
%e*ta con Pr<*tamo
(Su$tract with Carry)
A = A L C L opr8
A = A L C L (opr8)
A = A L C L (opr16)
A = A L C L (X)
A = A L C L (opr8 + X)
A = A L C L (opr16 + X)
A = A L C L (opr8 + SP)
A = A L C L (opr16 + SP)
! ! ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed 8 $it o))*et
("X+) inde(ed 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
A+
-+
C+
.+
&+
D+
,&&+
,&D+
+
/
0
+
/
0
0
1
S&C
acer 1 e3 Acarreo
(Set Carry -it)
C 1 1 ("8) inherent addre**in4 ,, 1
S&"
acer 1 e3 $it de mH*cara de "nterrupci9n
(Set "nterrupt #a*K -it)
" 1 1 ("8) inherent addre**in4 ,- 1
S'A opr8
S'A opr16
S'A ,X
S'A opr8,X
S'A opr16,X
S'A opr8,SP
S'A opr16,SP
A3macenar Acumu3ador en #emoria
(Store Accumu3ator in #emory)
(opr8) = A
(opr16) = A
(X) = A
(opr8 + X) = A
(opr16 + X) = A
(opr8 + SP) = A
(opr16 + SP) = A
; ! !
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
-7
C7
.7
&7
D7
,&&7
,&D7
+
/
+
/
0
0
1
S'X opr8
A3macenar X en #emoria
(Store "nde( %e4i*ter X)
(opr85opr8+1) = X ; ! ! (D"%) direct addre**in4 /1 0
S'BP &nter S'BP #ode, &na$3e U"%C Pin
" ;
Stop B*ci33ator
; ("8) inherent mode 8& 1
S'X opr8
S'X opr16
S'X ,X
S'X opr8,X
S'X opr16,X
S'X opr8,SP
S'X opr16,SP
A3macenar X en #emoria
(Store "nde( %e4i*ter X in #emory)
(opr8) = X
(opr16) = X
(X) = X
(opr8 + X) = X
(opr16 + X) = X
(opr8 + SP) = X
(opr16 + SP) = X
; ! !
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
-.
C.
..
&.
D.
,&&7
,&D7
/
0
+
/
0
0
1
SP- #opr8
SP- opr8
SP- opr16
SP- ,X
SP- opr8,X
SP- opr16,X
SP- opr8,SP
SP- opr16,SP
%e*ta
(Su$tract)
A = A L opr8
A = A L (opr8)
A = A L (opr16)
A = A L (X)
A = A L (opr8 + X)
A = A L (opr16 + X)
A = A L (opr8 + SP)
A = A L (opr16 + SP)
! ! ! !
("##) 8 $it immediate
(D"%) 8 $it direct
(&X') 16 $it e(tended
("X) inde(ed no o))*et
("X1) inde(ed, 8 $it o))*et
("X+) inde(ed, 16 $it o))*et
(SP1) SP with 8 $it o))*et
(SP+) SP with 16 $it o))*et
A;
-;
C;
.;
&;
D;
,&&;
,&D;
+
/
0
+
/
0
0
1
SV"
"nterrupci9n por So)tware
(So)tware "nterrupt)
PC = PC + 1
Pu*h PC6
SP = SP L 1
Pu*h PC
SP = SP L 1
Pu*h X
SP = SP L 1
Pu*h A
SP= SP L 1
Pu*h CC%
SP = SP L 1
" = ;
PC = (O...C)
PC6 = (O...D)
1 ("8) inherent addre**in4 8/ ,
'AP
'ran*)erir e3 Acumu3ador a3 re4i*tro CC%
('ran*)er Accumu3ator to CC%)
CC% = A ! ! ! ! ! ! ("8) inherent addre**in4 80 +
'AX
'ran*)erir e3 Acumu3ador a3 re4i*tro X
('ran*)er Accumu3ator to "nde( %e4i*ter X)
X = A ("8) inherent addre**in4 ,7 1
'PA
'ran*)erir e3 re4i*tro CC% a3 Acumu3ador
('ran*)er CC% to Accumu3ator)
A = CC% ("8) inherent addre**in4 81 1
'S' opr8
'S' ,X
'S' opr8,X
'S' opr8,SP
'e*t para 8e4ati2o o Cero
('e*t )or 8e4ati2e or Dero)
(opr8) L O;;
(X) L O;;
(opr8 + X) L O;;
(opr8 + SP) L O;;
; ! !
(D"%) 8 $it direct
("X) inde(ed no o))*et
("X1) inde(ed 8 $it o))*et
(SP1) SP with 8 $it o))*et
/D
7D
6D
,&6D
/
+
/
0
'S'A 'e*t )or 8e4ati2e or Dero A L O;; ; ! ! ("8) inherent addre**in4 0D 1
'S'X 'e*t )or 8e4ati2e or Dero X L O;; ; ! ! ("8) inherent addre**in4 1D 1
'SX
'ran*)erir e3 re4i*tro SP a3 re4i*tro X
('ran*)er StacK Pointer to "nde( %e4i*ter X)
5X = SP5SP6 ("8) inherent addre**in4 ,1 +
'XA
'ran*)erir e3 re4i*tro X a3 Acumu3ador
('ran*)er "nde( %e4i*ter X to Accumu3ator)
A = X ("8) inherent addre**in4 ,. 1
'XS
'ran*)erir e3 re4i*tro X a3 re4i*tro SP
('ran*)er "nde( %e4i*ter X to StacK Pointer)
SP5SP6 = 5X ("8) inherent addre**in4 ,0 +
VA"' &nter Vait #ode " = ; ("8) inherent addre**in4

También podría gustarte