|
|
发表于 2010-11-16 23:11:39
|
显示全部楼层
累加器进栈指令 PHA+ G1 S* l: H# {8 C/ O U
. B$ _2 X5 e! ?( ?& o
PHA是隐含寻址方式的单字节指令,操作码是 48
; V9 ^( g/ e" Y5 R
9 k% }. P( }# ~" k3 M, P 功能是把累加器A的内容按堆栈指针S所指示的位置送入堆栈,然后堆栈指针减1
$ w2 D2 j$ \" J/ e7 x& t& X# v% ~
, {: L+ M. g$ b- J. \累加器出栈指令 PLA$ I- R0 `: b7 S9 x
2 b4 N L( B. V5 L
PLA是隐含寻址方式的单字节指令,操作码是 68" y& I! s% i' O* K7 }
g K. Y/ i/ F' z2 m* C" T0 a
功能是先让堆栈指针S+1,然后取加过1的S所指向的单元的内容,把它送累加器A
. ~+ v6 Q) N I$ [, q0 |
# N5 J' W# q6 M" z/ r比较指令
( N2 ~ i; w! J0 J, E9 }+ O: a+ ~$ w+ f8 S: i j8 ?6 X% l
CMP--累加器和存储器比较
]: u. U6 }, j& r X( ]9 _' b6 ]* O# t
CMP #$data C9 立即寻址
% B' M9 D/ Y9 B' }) u, f' ?" y3 u1 f' F# e" s8 M9 r Q
JMP--无条件转移指令
[8 z! ?! h% H0 j; `2 L2 i/ }1 B& W/ l5 { t: O
符号码格式 指令操作码 寻址方式
& T/ M" S% O+ f/ LJMP $data16 4C 绝对寻址 / m1 _! T9 Z3 {( v
8 ^5 W1 M+ z$ n; M3 j! P* B! ~' T' E2. 条件转移指令
/ s+ ?4 g0 y9 C9 N. z8 N, G6 b& L
BEQ $data16 F0 相对寻址 如果标志位Z=1则转移,否则继续
) v2 p5 T. j* r9 s: z8 ~: uBNE $data16 D0 相对寻址 如果标志位Z=0则转移,否则继续
( Q) T" E. B# N% ? r( x+ `# N! U( oBCS $data16 B0 相对寻址 如果标志位C=1则转移,否则继续
2 W+ d: X8 t s. m0 ?1 B7 ?BCC $data16 90 相对寻址 如果标志位C=0则转移,否则继续
9 ]$ p( W/ n4 S4 h& L# c* RBMI $data16 30 相对寻址 如果标志位N=1则转移,否则继续 ( y" I: A9 } g7 P
BPL $data16 10 相对寻址 如果标志位N=0则转移,否则继续
7 s) }7 `; a+ `7 e1 J5 Q* VBVS $data16 70 相对寻址 如果标志位V=1则转移,否则继续
" [' w) X0 v2 y1 R$ t" E+ z* iBVC $data16 50 相对寻址 如果标志位V=0则转移,否则继续 , L! c0 @ N( ^' I3 h
4 i% \' ]) |, e9 @STA--将累加器的内容送入存储器 A--M
( I7 w/ [, g; kSTA $addr16 8D 绝对寻址 |
|