|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
此表主要是为了方便大家查阅每条指令的作用,写法以及字节数和周期数,建议大家保存为书签。
9 b; B1 J' T( }3 \助记符
0 p; N4 l6 b, {6 E& s1 j+ H | 指令说明0 X `8 \; a8 ^6 L
| 字节数& {7 \% m. T5 b, J# }/ M9 y
| 周期数
8 u, ]9 I- { H' E; w$ g4 R$ N | (数据传递类指令) | MOV2 \3 ?7 ^2 |5 T6 M' F) w
| A,Rn* d4 o/ C4 l* n# Y5 `1 C
| 寄存器传送到累加器4 p( D" `4 ]: `: X* F
| 1, x% M+ E& x& y$ x+ p
| 1: S+ \- y2 a. S0 v& R
| MOV
; H2 h) z3 Q: |9 p | A,direct$ s: }$ {3 t' u3 [* S) M
| 直接地址传送到累加器
: r c' {3 \) L0 F | 2( f# \% l- h3 n7 s, j6 B3 b& S
| 1
( u6 t( y* N6 B+ {9 P | MOV7 }( f2 q( ~% Q$ G
| A,@Ri
, W: {4 m, D+ W( R( `4 G$ N( Y | 累加器传送到外部RAM(8 地址)
( x4 P8 m6 s9 Y4 _$ @% g8 R | 1
1 s' C2 |6 w% F) q J3 l9 _, x! j$ D6 X | 1; v0 G; _4 G8 t4 B8 h' V
| MOV( b: B0 r4 F: Y, v( I: @$ _. T4 U
| A,#data' D1 e R( z& |2 e
| 立即数传送到累加器/ Q7 X$ [- W* l: C ]( S
| 2
* n/ {8 k7 _5 p) T/ z* f' v | 1
" J3 h& V& z/ B3 b. a | MOV, E# [2 a+ e W3 x ?
| Rn,A& q2 o( c# x5 W; u
| 累加器传送到寄存器
7 R* ^* k9 a- v | 1" U) z0 ?8 v6 ]) }) T( w% {
| 19 V# E1 x& V0 ]
| MOV: o+ h n! L7 v
| Rn,direct+ L5 T) D$ k$ n# R5 L" S! }
| 直接地址传送到寄存器* O8 j$ @3 A! \. S
| 2
$ `" U% i( L/ o6 s/ Y5 K | 2
- C* I3 g. s+ a* Z | MOV" _# }# A3 s, T+ X# ]
| Rn,#data
; N d$ ]% R" V2 Z" U% y | 累加器传送到直接地址$ I/ c( ^, b9 M1 K# J& H# D' m
| 2# J5 l$ t Z5 k3 V) _0 d0 c
| 1
; e2 @; j" _7 U! r* Q& c | MOV' i8 M E$ O/ ]. ]; t4 w1 F
| direct,Rn
( {8 M: L/ A9 x* @( m | 寄存器传送到直接地址3 v: z: h8 c1 x3 W5 \4 A! |; S
| 2
. D* q& a; Z0 z1 ]* i3 S& A5 P | 1
( I: D5 @) G3 E2 D | MOV
{9 f# S9 X7 N O5 ~7 s& ~ | direct,direct/ b, ?- l1 I+ D7 }
| 直接地址传送到直接地址- R$ R/ G' ?& q& r$ ^' L
| 3
) N4 v6 A: ^7 M7 ]3 }4 \- @ P5 C | 2
* Q, L1 R% S+ @6 j | MOV) `7 m# u! c! u
| direct,A! d) g7 ]) ~' y
| 累加器传送到直接地址7 ^6 z6 [; H8 T$ _2 ^
| 2+ A: P; W+ _4 f2 L3 u/ s5 l
| 1* b; C) R2 d1 q% R
| MOV# K4 w) d8 |2 Z
| direct,@Ri% f8 F/ q' }3 U/ I6 w" j3 }0 v) H
| 间接RAM 传送到直接地址. N" ]4 Q& g' C: w; h3 y7 t" j! q: @
| 2
" o0 ^ [9 S: Y | 2- ] l2 x8 N" C8 H7 F
| MOV
+ B w& A$ `% Q6 } D) x* E | direct,#data* x7 _4 }- u- S+ f) X, l
| 立即数传送到直接地址7 ?: Y6 `5 _/ `1 y( G$ d3 [
| 3) Y* e% }7 l6 H" }0 h, D
| 2
" ~+ s/ L) O! t. o | MOV t3 ~7 U) x L. ?2 E$ a1 M
| @Ri,A
# R% j% C3 F' C2 l9 E7 B | 直接地址传送到直接地址
# v, z: B9 N, `7 w2 k( z | 1
- H+ H- v! U% n9 K+ a1 l | 2$ ~% h& D5 l: C5 y- p7 ?
| MOV
2 r! }- x3 o9 K& J0 u | @Ri,direct% n1 X7 [* E6 y
| 直接地址传送到间接RAM
% y* m$ Z6 @# G | 29 Z: \3 ~. w5 z. ] C
| 14 W2 I' r' G9 x7 @' c6 p; Y
| MOV
# _ u z, ?1 d" g | @Ri,#data
" d! N& G" g% K. n' m3 ]% g | 立即数传送到间接RAM+ b3 C8 p- E) {, U& p
| 2) h2 g; Q1 y5 q
| 2! Z) E' O0 a6 }
| MOV4 ]- s" O4 |& V9 l) ?
| DPTR,#data16
# x" h3 t3 [( E/ ?( ^8 G | 16 位常数加载到数据指针
4 l$ X4 r1 y9 g5 P- @3 y2 ? | 3. T+ q( Q* \" I) }/ w9 f6 t
| 17 ?7 ^$ `1 h$ w; a" b. {7 ]+ b
| MOVC7 u# g1 P0 S8 c
| A,@A+DPTR
! @& w) j6 u4 M% H | 代码字节传送到累加器* U3 m! F) J# N' y l
| 1
- B* A+ s4 e+ S6 J r- O | 2
- D* I7 ]6 a" X6 g1 g | MOVC
6 h' ?" D& |) i/ i/ t- F) c; H/ u | A,@A+PC0 d+ f' e7 O/ i: N: m2 h! U
| 代码字节传送到累加器$ h \+ C* K. x5 N
| 19 N# Q2 D8 x; b1 A& a
| 2
c0 i6 w8 Z0 m. `7 Y- q | MOVX" `4 l: M6 V( z, @+ l
| A,@Ri8 |' m3 m! r2 {/ [7 K: ]6 l, o) T
| 外部RAM(8 地址)传送到累加器
X4 L G' S: H; H6 s/ ? | 1
6 ^2 ?) a; w) j | 2
3 Q* n* `& U" L7 r4 {% d! o | MOVX O( z/ ^, q* O: S. K% B. s
| A,@DPTR
i) J. }( [! G8 Z5 ?2 T- o | 外部RAM(16 地址)传送到累加器
; C( k0 q" C6 d! a) \ | 1
6 `" [% o7 n% ]4 a: U | 2
: {7 e p6 a7 y4 K8 r$ h | MOVX
4 ?) l8 P' F% B7 T" a9 T4 W | @Ri,A) D9 ^4 D) d+ L0 |- m! n
| 累加器传送到外部RAM(8 地址)0 \( J5 ~5 z3 m1 S
| 1% J' i) a8 ?6 D1 P; Q. r- l, m2 W
| 2
6 s7 _% i8 c u5 \) \- E | MOVX
& |2 A- ]) G' U) _4 Y- c: a | @DPTR,A" {6 m u' s. }7 y" e* x) |
| 累加器传送到外部RAM(16 地址)
# E6 T6 _- Y. p) O | 1) V0 |9 B1 F y4 r+ M! }
| 2
" a4 S. V ?6 _, p- F: w | PUSH
+ b) N- q" _/ X: g: ?. ] | direct! m" r! s% [$ G( m6 U
| 直接地址压入堆栈
1 [, b! V) g2 F ~8 j0 K. Q | 2
S5 k9 @5 R" h6 Z2 y) I | 2+ @$ g5 [: R }6 W6 o* q" K
| POP7 q# D6 E8 H- J, u& \1 d! b
| direct
1 [" z z4 C0 m- M) Q' W- i' ]5 G0 ~) S$ o | 直接地址弹出堆栈8 \$ B! g4 U/ p0 ~
| 23 U/ @* E4 b5 Z O
| 2
4 M- D1 h. x+ v! a- H" I | XCH
4 R; i9 _! v+ V x. ]1 R* I m Z L | A,Rn
0 f3 m# N0 [4 S+ @" L7 D | 寄存器和累加器交换
2 t( ?& K3 S2 `& F( y | 13 n' f3 J' G' K/ }
| 1
: S) w& O* C0 E n* e | XCH, U7 S/ J; q- z/ R) a
| A, direct
/ y" G8 S5 v c, n' z | 直接地址和累加器交换$ Q% t o- s. D6 y; T
| 2
. ?. k0 O: |/ {8 ]4 o# |9 f. a8 ?+ Z | 1/ E. }' E M& L2 }; j: h
| XCH
$ E, N/ z8 M6 h1 }# M | A, @Ri
2 `- t, b/ O7 T: X1 P8 U5 r& w* v | 间接RAM 和累加器交换3 m K( j. R# X _2 a5 ~& x
| 1
0 G' b+ D( w o' Q& ? | 1
% H+ a8 E; d( w! D/ j( o | XCHD
- o+ J2 x7 C- D; k2 U/ E' R | A, @Ri$ ?! w) k8 m4 r$ Y2 m' U
| 间接RAM 和累加器交换低4 位字节
" m5 t* ]' Q7 j. M( b) Q% Y; s | 1
% Y" o, {3 h' i/ ?0 T7 p) u | 1
- w9 @) V" r5 j+ G | (算术运算类指令) | INC
# c$ B, |' f8 Q2 H, X1 o, ^9 R | A
! P6 B, |. I3 V h- ] | 累加器加1 O% v! a/ ^. t ]' n& d
| 1
6 t& F( Z' ?, |+ Y: M# U | 1
! W) z8 f' K# [7 |& v! q | INC
; P0 n$ M p& W/ G c) A c | Rn) T5 s" d4 C# O' n8 b* T, G2 G
| 寄存器加1- I! Y6 C3 I5 f( f
| 1) h; r, t4 v' ^0 C, N1 _6 s
| 18 U' z6 H. S O- E3 ~/ m" C) L
| INC& W0 L+ u/ O8 ^& F3 b
| direct
" }3 a9 m, C# {# @ | 直接地址加14 j+ a0 m! N& }2 _" x% h) a# J' \
| 2
4 a! i0 x( i: M) J( o* U0 b/ L | 1
! I* A3 r: Y4 p% ~0 Z0 L | INC
( {' J3 l" ^2 }" C. W/ v | @Ri" l6 w4 c% T, E/ x# P
| 间接RAM 加1# D3 x% [# Q. {$ H' b! N4 {
| 1
4 X) p. a) i. F& p% j. { | 1
6 _0 p2 @. v- ~7 z | INC
/ F& f) J1 Z: l" H j | DPTR9 {; e1 \; \; h7 P! k, d, n
| 数据指针加1; [5 r* P {6 X4 B0 J
| 1
/ P. v( A' V. `8 |! s | 2
6 `7 ^3 z* G0 p ]" U | DEC
1 O) D, E6 z9 r4 k! g: N1 S- C | A
x: ]* h7 n4 A& T; n7 a | 累加器减1
; g0 S: H4 [6 y5 H+ { | 14 ?+ M1 k; `7 p$ q7 b6 y6 Y$ g
| 19 ~3 }- M# { \! h$ T4 O/ J$ M
| DEC
& K# U7 v& L' y# X | Rn: K! r: H0 b% v
| 寄存器减1
$ z: j9 x# e) i | 1( D1 E, k5 y6 L$ _: G, z- n
| 11 g9 b1 M* G! V) R- C
| DEC
$ u! P5 o. T2 ~$ `- c: J7 G3 M | direct1 W0 s' c7 t/ F& v# ^
| 直接地址减11 V% s$ z8 D; T! ?0 f0 c. i
| 2
7 z# A4 K# x5 q, ?1 ] t+ l8 |( e ` | 2% n3 [) h4 r" \, w( ]. I9 `! N
|
DEC8 s3 d- o5 B+ ~% s7 O+ m4 a
| @Ri
) D# V4 L: h4 ~$ q/ g | 间接RAM 减1- ^* i1 ?5 q# ~, {7 [
| 1( v$ Q0 {2 m7 D K) U3 ]
| 10 D/ }" R/ E( e$ S
| MUL
: ~; s% I9 _4 K& Z% ~: o | AB2 m: x! ~# f$ G9 H( P& h5 S
| 累加器和B 寄存器相乘
3 O" r2 O) Z% A; B1 } | 1& Y1 I0 Z0 j8 p6 ^" G
| 4
6 i. y! F! _8 u5 M# h: ` | DIV7 ?" `" |1 L1 F; }8 R: e h, [- f- Z
| AB( o! c0 V2 ]$ h3 d# E% i( ]
| 累加器除以B 寄存器& C6 S5 g9 [$ {1 M5 Z2 x
| 1
I$ A7 L$ b* A4 b/ @6 D# D" d" | | 4% s7 Z5 e1 b! J- L
| DA
7 ?5 {2 C9 U+ O+ L* e | A
: l* Y+ n) a6 ^0 g* B5 ], W | 累加器十进制调整
/ T$ E7 [: w% M* ` | 1
! b+ a7 J/ b2 h% t' z' i+ o( X* h | 1) B2 I; q- j# @
| ADD0 N* }$ D' u6 s( S" D
| A,Rn
/ V$ w! E: A# S | 寄存器与累加器求和 N9 p& C. M9 w; e; @1 L; _
| 1
4 G7 a$ a! q$ Z; l# g | 1
* \6 p. Y$ f- C7 `# W4 l | ADD) E; a% J, h: ]
| A,direct
! a& w, j9 S' L# q2 B" K3 T6 | | 直接地址与累加器求和
' H1 |1 ]$ B6 v* {# v" t | 27 o% K' d! k& N/ }
| 1- O* F! h( c' N5 k
| ADD% Q2 ]! R9 g2 k4 h4 [
| A,@Ri' Y1 P+ y) P d
| 间接RAM 与累加器求和) e8 c/ z0 m# d( j2 e; U. l
| 1
1 Y! s# G. Q8 |, H | 14 j" J0 ]2 v5 U
| ADD
+ T* O7 j# z0 ^+ s/ h. ] | A,#data
% ~2 G5 b2 O. j% F3 N) p( X | 立即数与累加器求和
5 R0 `. u0 O+ N) x1 C$ F6 J | 2& e3 S5 J( g1 `
| 1
. T3 V) G5 z( ]' F% j8 { O1 ` | ADDC
+ `& \5 |& n* J ^+ a8 T | A,Rn
9 [0 s+ ]' i: a) d' W: L, a | 寄存器与累加器求和(带进位): t" d3 x/ ^* U! {& m
| 1
( R+ U& a! W. l/ k8 D/ s | 1
' J/ i$ q0 J0 E, Z( E& g8 K | ADDC
/ M5 \2 z% k% s. u% {( G | A,direct; B* l% z8 y) H, ^, X" A
| 直接地址与累加器求和(带进位)3 |$ x. R' b! _
| 24 r8 |) B' |2 ^+ r8 e4 ^, `6 \5 s- l
| 1
* F& y& V: K" ^7 R0 k: k | ADDC
( p$ E, g7 {8 _) f1 a1 b | A,@Ri
. }- ~! z. L0 i5 h& @ X$ D | 间接RAM 与累加器求和(带进位)
4 c$ ~- N* U) q4 q | 1
6 g$ O' I8 ^! b# `2 @ | 1& \, G! u6 h% |2 }3 W
| ADDC1 r( C p- G! W- G1 p2 Z
| A,#data0 N# P) l7 y2 e8 z1 H* V# s
| 立即数与累加器求和(带进位)" ]! p$ g$ g- z8 a6 f2 [& w0 G: n
| 21 Z1 V1 Y" P6 x2 Q& J) j
| 1
' [; t! }* H3 J' [: T' h | SUBB* i/ F9 E% c* i, R9 N
| A,Rn
2 s* Z; V( h2 ~" f( b# ` ] | 累加器减去寄存器(带借位)3 L# t# g9 Z) @
| 16 N: Y0 Y. _9 E2 n
| 1
- [4 g% J r" k5 G6 t) {* L2 W. | | SUBB" w9 H9 D& ^) Y( Z; X
| A,direct* l( |" M/ k; v) E+ ]+ a
| 累加器减去直接地址(带借位). s0 ~0 T* A" C
| 2% e+ r/ L1 O7 F: O- O
| 1
, S8 p$ q, n( l# ^ | SUBB# x$ F, S) ]/ r4 Q- ?. {5 ]
| A,@Ri7 D$ M/ {' T) v" f L; S% ~
| 累加器减去间接RAM(带借位)
5 J* U; N- Z/ i) ^ | 1" O! P5 A5 ]4 N+ f/ _6 W- L/ ?/ W+ N
| 16 [9 Y* z3 o: |1 x5 v
| SUBB! N+ t2 f$ p* N3 s1 H2 N
| A,#data
; N" L% V3 q- t1 ?1 E | 累加器减去立即数(带借位)
# D8 @; D) ], u- u) i | 2; _9 p* a# L% D
| 1: M( b, S7 } {% k& }
|
(逻辑运算类指令) | ANL1 Q0 Z/ X6 ~4 c/ P9 N
| A,Rn
! G& d* m% v6 Z$ D9 T" c | 寄存器“与”到累加器
7 B z9 e, n) V% C2 q4 v | 1
# j9 v9 i. ]5 C# I( P6 v | 13 `- R5 R$ ~/ W h
| ANL
9 g9 I d9 O/ N | A,direct
6 y- L; `1 v: F/ j z | 直接地址“与”到累加器' b, V8 o: ~/ g% j a
| 2
6 r( Z3 H* Q, a: V' E% b4 h | 1! g6 i% l \, X; i0 M! w6 X/ s
| ANL2 b, X8 ]' ~3 o
| A,@Ri
0 C2 ^" _9 s4 _" ], U | 间接RAM“与”到累加器
: M3 O1 m; `; o, e" [ | 1; ` A) p5 |0 j- }* E' n3 U' D
| 17 w$ O5 l5 a" L! F3 b# p+ _6 b& }
| ANL
/ a7 n) G( I3 u% a. l | A,#data
6 f! ?5 N% d9 w | 立即数“与”到累加器+ t6 F3 \! f1 N5 _) o' T3 |
| 2
2 k5 j. S! m' H6 c5 D6 ~+ n | 1) _) w4 P& `4 W' _. x+ g8 M$ ?
| ANL+ l: v& g8 V7 T
| direct,A
" P7 @2 g4 ^! E | 累加器“与”到直接地址' S7 ?1 [0 q6 H* l+ e) r7 k& J
| 2- y( d9 s4 o* D9 j0 f
| 1
" j; f& C0 q- l* X | ANL
; N$ {; G& |* x4 h0 A6 H. V; c | direct, #data5 A7 M) u# W: j: X, p8 Y' ~
| 立即数“与”到直接地址
0 y3 ^$ u% C! ?( t6 H6 s! i | 3
8 P7 e" X4 G/ K# T, w | 2
0 v+ ^ I; O% }9 L | ORL8 n! G- ?6 {8 }( a% ~% S8 i
| A,Rn$ T2 K3 O2 f& x4 b# R
| 寄存器“或”到累加器
+ T8 l, F2 w4 g7 i ]4 j | 1
3 h7 p4 ^9 V% ^1 _! q: y i) l | 2
1 m* g# C; A, [5 p" o9 Z& l) ~7 i | ORL+ }) F. f9 y$ a) \: Y; g
| A,direct
; y- q% o! O& d$ F- n | 直接地址“或”到累加器
/ Q& A$ Y% a. V6 M | 2
" |+ L; n" Z; X0 g' h | 16 [: s3 H" J! W1 e( O9 J1 b% U
| ORL) x5 V+ O R' x7 |9 T/ ^& T
| A,@Ri. n# m; o/ y) x9 r, P7 v' ~0 x
| 间接RAM“或”到累加器& E" ?+ b# y- D" M! N3 e
| 1
& |& D2 v- ]5 A2 v1 r. {/ j | 1
+ P4 g, T; C. H# W) a$ y | ORL( f6 B B- V k) h: B! h/ K
| A,#data
- @2 I# ^ F6 g! H* {$ A7 P8 K | 立即数“或”到累加器8 [6 _5 U4 G; ?
| 2
6 r$ O7 n: f% R6 s! ^ | 1% E' J6 s- o0 v( x, K3 \
| ORL9 N5 b0 M" b! |; i! \7 P6 Y. t
| direct,A
9 H6 g2 B" w$ c6 o | 累加器“或”到直接地址
+ b! C0 ~, g3 y% @6 @ | 2! Z B0 v3 `8 L1 {. O
| 1% N. x* p# z2 p' a, o3 R; E
| ORL
5 @ q: |' U) V8 w' ~ | direct, #data
3 w( P# k4 K F" M, p; u4 b8 c$ i | 立即数“或”到直接地址7 r9 f* U5 t. b" c
| 3
C( C7 c% D, y | 1
8 K# P5 l0 b6 F5 M: n, l* l8 I | XRL, X, B+ w" @4 O# _
| A,Rn
$ B( j5 ^, W% O( Z5 V | 寄存器“异或”到累加器$ V' {( K) P7 e( [8 y' i, _
| 1
) g& q l U' W2 e8 @+ S6 } | 2
6 S7 y: q$ }' }0 ]( D | XRL
6 k `7 }$ X4 i. ^ | A,direct
( r1 Z. ^# B1 Y! N: K `; g* T$ d | 直接地址“异或”到累加器 d9 @, a; x$ F7 O
| 2& T& z* s+ E' ~8 |3 N& a) k, H5 B
| 1
: [: c0 H9 y1 _" a2 Z, R( C | XRL/ o- w2 O7 y4 o& I3 r Z- z
| A,@Ri
, b2 \1 p4 c/ y |+ Q | 间接RAM“异或”到累加器
6 l7 M* |! c0 ]1 M! ?. l | 1
- L& I4 j0 R3 \ | 1( Y/ w2 a6 B& w- F- L
| XRL# n6 U& i7 }, H4 Y* h8 g8 L
| A,#data: k9 h O/ ?% p& }/ V( R
| 立即数“异或”到累加器
5 s/ I* k3 a& ~4 M | 2
- s. _& V) A6 B' ~! x4 F; Z | 1
: q) n4 [( h% r7 |5 e | XRL3 f! B8 B: P Q2 ?, l* i! T
| direct,A% q0 h8 m" ^- o9 w! e
| 累加器“异或”到直接地址( c, O2 r' D; W" _3 A+ s
| 20 @) I3 X1 U, Q( A. X
| 1
w6 Y/ S3 k% y/ P$ u' w | XRL( h; J: P& t7 O& f' V. w# ]. V
| direct, #data
- t* n. |8 {7 E8 }2 k$ S- R | 立即数“异或”到直接地址( ~8 e7 \+ t( s6 G& {
| 30 c# u( _; Q9 _) q2 c
| 16 T( v, Z0 @2 O b" G% W( N2 r
| CLR7 N/ v: G4 N9 u. K3 |
| A C$ v& Q9 i* v: {8 r4 g2 q: E/ q
| 累加器清零
* o; G% ~3 ?0 r | 1, j. x5 d2 P) R; s/ a
| 2( f1 a6 y& |8 z1 B- ~' A
| CPL
# ]2 R9 e2 d7 S# A: D. t | A
0 u* F+ H; \0 @" \9 A4 r2 x2 p | 累加器求反
: _+ ?4 ?) o u) x# u6 N% j | 1
" c9 h e+ y3 a4 @; v8 S | 1) y6 [% T' U8 i; ^3 p$ H
| RL
/ P9 n' v7 X( g$ v6 I0 ?) [ | A) U. _5 k- I! n% v1 y! C3 I
| 累加器循环左移% D; M* L( N( K& i
| 1
( H# r* p. `8 S( j | 1" \( J+ A7 d& u& U2 |" ?
| RLC, }" r6 s- D& U3 u$ _ I' W
| A
7 O8 s* O O& J) u | 带进位累加器循环左移
' n& b% Q+ v( `8 Y7 B3 d) | | 1
& K0 f. ~' R# s | 19 K3 B" o" q; Z+ S5 ^& z* t) c4 Q
| RR
; R6 ^# L6 S! E# D$ V7 s | A4 q( i4 M. g# C2 r3 Z4 a
| 累加器循环右移) z: Y+ F. |# m ~4 Y& R
| 1
! {- N2 l1 `6 a; E | 12 l5 s3 {! `, u2 L" v* r
| RRC
0 m% i/ I8 Z Z* S | A
$ B) S% ~9 m" f, |; K0 i | 带进位累加器循环右移
' n U3 F9 Q1 r; j/ q | 1
" \% Q9 x) Q/ I9 M; S4 K' \ | 1
/ x) y2 F( w! [9 f: k4 q( w | SWAP) l9 j+ N. r4 g+ H$ e
| A
4 B. D" Z$ ]( A | 累加器高、低4 位交换7 {+ {( K) s, ]$ Q0 {
| 1" o- Q' X. ?6 }5 g. A6 l
| 1
9 v- L2 b; `& K' R4 t" x4 H7 H |
(控制转移类指令) | 3 E& K$ k! u4 O$ d
| JMP) I& ^; T- \7 P
| @A+DPTR
" ~5 r2 A: V% c k' d4 b% s: t' @ | 相对DPTR 的无条件间接转移
( A/ {; b( m* v- K: Z1 D# d& p | 1
' q6 y$ A" y/ ]4 w9 \. P | 2
# s. D$ }: B. C | JZ
' P0 ]/ X- ~. n. L3 _' ~# O | rel, i+ h6 O, z9 k2 B
| 累加器为0 则转移$ M' ~3 `# b7 j- @& L
| 2; l# t! x: M) S2 c/ w i
| 2. k p; [1 }; o& ]' Q
| JNZ
7 V7 a, C' K- k4 c* _" B | rel
0 ]4 j) h* R: A | 累加器为1 则转移
2 F. B, K3 }9 ]2 x$ w7 S5 n! S | 2
. u7 A6 p; z5 j- ]0 t) x | 2
- k0 e5 F. [; F | CJNE
$ B! u# M# o1 ^7 [" P4 Q7 w | A,direct,rel
/ G& A6 p/ ]5 ?1 d- P | 比较直接地址和累加器,不相等转移
v9 G% J( g5 ~- O- ? | 3
2 j' N+ J+ R) i; }$ w+ E9 D | 2- F1 S k+ `( B% \# r: z0 V
| CJNE
$ ~/ q; }& M0 ]+ K | A,#data,rel* H2 D% b7 N ?; [
| 比较立即数和累加器,不相等转移" _% Q' @. |" `6 j7 i3 a
| 3
( T1 H: ?# p7 P$ x | 2: @; F* d N, T( g1 r$ R7 e
| CJNE2 Y) G' M4 F0 j' I1 D& S( T6 C8 n
| Rn,#data,rel
+ ~9 l! W: T3 p; i5 `& z( b; a | 比较寄存器和立即数,不相等转移
K2 d. u S' z( s' g | 2
! ? M$ y( i2 y1 e1 q$ N | 2
6 [& X* I4 }9 ?2 [8 M$ u! m' \: p$ y | CJNE$ U7 ?5 W5 C, U! U8 N. z1 |/ m
| @Ri,#data,rel
) D8 ~- H# G9 Y% S& H4 ?8 I9 q1 q | 比较立即数和间接RAM,不相等转移
1 I" w+ X6 D! ^- j, H | 3
0 [; Z6 _5 ^4 a8 K. i6 ~ | 2% \4 I+ E& z- _6 o
| DJNZ" y1 d0 _5 S' Q7 Y6 }. O
| Rn,rel1 f- p. Z' x; R, G+ C6 Q8 M
| 寄存器减1,不为0 则转移% Q/ _2 p+ N! ?9 i B" M
| 3* a0 }/ c2 _4 J& @8 ^% i7 G
| 2
t. X2 K( l2 |* S! V* d | DJNZ/ v! [ L$ s+ O
| direct,rel
$ Q' v/ \. s/ k9 W5 f1 @% E | 直接地址减1,不为0 则转移* W5 L5 n1 a# o* {- T
| 3
: C7 A8 u# l) s- A& L | 2
) _& x6 X% v5 f$ @8 T+ J: N: Q | NOP
: G3 {3 i: j* d' v0 E |
4 a+ Q! p' R' L2 x5 v9 `. T( e' f | 空操作,用于短暂延时
. O- P+ W% T# V: ^% b8 r | 1
4 \ t2 Y0 o9 P* h2 q: J | 1
; |8 ~" S1 f, n! r ? | ACALL
* {2 O, x5 L) s | add11
# x% K' a! Y6 |! {( F5 L8 H5 t | 绝对调用子程序6 a. F" \9 i+ |# I: ~
| 22 @5 x- x, A* N( I8 _
| 2
& f/ u! J+ `( ]0 @! ^/ S | LCALL
7 i6 z4 [! t- h! a' G5 F2 d | add16& E, H2 c3 G1 c- k: v. S
| 长调用子程序
8 G$ R8 b2 V) ]! V" p: { | 34 ^# ?( Z' ^( ?3 a1 `$ V& H
| 2" p# r& J# e2 K% g
| RET
! u! Y- N( E; B# ?, g6 a | 1 b5 x0 Z& _6 j
| 从子程序返回
8 h& @5 l+ X' S a" o. U% z | 1
* t- D' f0 U$ n | 2
" ~3 r+ S/ G% F. }: J | RETI# H1 [$ ~1 v* {3 B1 H& B
|
& M. `. z, o+ q+ U G | 从中断服务子程序返回
' Q, a/ }- U) L0 J$ a) ]3 R# t. v | 1% q& C' B \3 [+ f
| 2. h& e& _. x. k8 F; R+ e
| AJMP
. [: t* y0 K; }9 M5 O: U. k8 i1 x | add117 K4 G8 e$ V4 Z4 k
| 无条件绝对转移' k% r/ n5 O/ m! W! {5 m
| 2
0 O, k& u" P, F$ q# {# _ | 2- d2 ]$ W x+ O% G; Y6 W/ m
| LJMP" ?3 v0 ^) c5 X- @' K9 u
| add16
7 u9 m. ^; K! y, N5 t4 o9 R | 无条件长转移
) W, P' L! z, j6 D- V1 c1 `) I | 3
3 I; X0 h; ]' u7 ^/ u; _ | 26 l+ A r+ l0 l4 _9 ~( ]3 J
| SJMP
& |* h3 Z* {; w! D$ z | rel
; H8 ]7 G" k, K' y- X | 无条件相对转移: K4 ~- K; ?+ H9 m, A( {8 N0 w
| 2& R5 u1 b" j! z$ d& I+ l8 ^- t
| 2
& Z5 X' _( t( Y |
(布尔指令) |
, H* i( u! i& h | CLR
3 @; u4 j, }3 ~' A1 K" H+ h' h- D+ E | C
: U7 ^$ U( P8 J* b; d7 M | 清进位位
9 }! ]9 N4 `8 e# D# W7 ^ | 16 Z/ o' h' I" B0 f( |
| 1! _( Y; R+ n( t' f5 J% d, B: S
| CLR" Z9 s! v. n# h/ @: J' E
| bit
& S. T4 c8 |; w7 D8 L' Q1 Y | 清直接寻址位
- F, N) g4 Y' X+ ? W | 2
0 @+ z2 o+ _1 Y9 } | 1$ S) ` N- j0 ^# m. u
| SETB
1 D9 |" p4 E8 r5 ~1 ~ | C. n8 U& I/ O# n) ~: o
| 置位进位位
" `) [7 M! m% K' l | 1' X& M5 ?) i) K3 p( ~
| 1
' b( A4 h; ~* v r V; s | SETB
, \- e" y R" J+ O5 d! ~ | bit0 O( T- n' s. u: l! {( |" t
| 置位直接寻址位
! \4 K; X! W& r" U! J8 N! S | 24 {6 y H% j5 r% Z
| 1
. L; @5 b2 I6 W9 }0 \5 ^: @- e% M | CPL
+ p! @( j! L: i0 O | C! _4 s+ l8 X d5 l' i
| 取反进位位' }$ G; L" S& ]) s0 p" X( Q
| 1
7 R) f" k. D& E. H | 1
4 w# D2 `! g7 H4 ^, r# h | CPL+ A/ j% f2 }, g- ?5 g
| bit+ m; O. ?' m" ^: O# J1 g5 S$ o* h
| 取反直接寻址位
% F8 i _1 P) \ | 27 U# O" M# I( a
| 1- \' u9 Y; s( u. M2 F7 ?$ S
| ANL
: N" [$ g7 R" Z- D9 w0 w+ B | C,bit
* y% Y5 C& x8 z# q) G" S0 E% p$ S( a | 直接寻址位“与”到进位位
: l. N6 R: j: o* _, L | 2# Q8 G' E! z' V j( W+ L; z" T
| 25 L6 H7 {) d( C, U! k" {, {9 Q1 c
| ANL0 d0 N0 j) G! ?. R3 U
| C,/bit" G8 C* x d7 L, Z
| 直接寻址位的反码“与”到进位位
8 b% @4 b. Q7 [* h. p | 2
" X" ^' {% N; C8 K* i; w | 2' H" Y: z1 @% i+ W$ f
| ORL
: w# Z# ]1 u n F5 C, V5 c | C,bit% F, b6 @2 q- A: I
| 直接寻址位“或”到进位位
" g% n- z& |4 c x, H | 2- q/ c* S7 i+ q# K* v; i1 T) U
| 2* X7 Y% |, B# d
| ORL, ~" I0 G3 s+ ]# H& y9 {
| C,/bit) Y: ^& P, K0 u( Q
| 直接寻址位的反码“或”到进位位/ v) @# W) G2 R( b8 `. E
| 23 l6 S! S) R6 f
| 2
1 \9 ], w2 h' E$ |, o) ]5 n# R- _1 h | MOV
1 M/ E& ?/ }9 Q2 r5 f) p7 @ | C,bit; C% Q; {8 w, W. I9 p
| 直接寻址位传送到进位位
6 w! F6 \/ [6 Y z | 2) \7 v% W( B- n3 o" z# z
| 1) i$ S2 D0 ?, e/ o, Z% o9 X; b
| MOV
' M" d4 t E% S | bit, C: P# ]$ B. _! D
| 进位位位传送到直接寻址& w, O* M$ U% Q; l H
| 2* c! W- h0 \2 \3 Z2 B1 c9 k
| 2+ d Q6 G% i9 k. @( I
| JC, q4 \) Q6 {. Q, ^, f
| rel6 M9 m/ ^) ]8 C/ o \
| 如果进位位为1 则转移
# A; w+ D: l$ x | 26 e8 a. o- b9 y. F0 Z
| 2
) t3 J7 b1 l: q$ C$ w4 Y% j | JNC- F# h: r5 Y t. C, k8 }
| rel" |$ o' n+ x9 I! L
| 如果进位位为0 则转移4 `7 m6 \9 L- I; \
| 2% z }- x3 o+ K& }
| 2
' ` d. |- }9 J0 o- G5 S N | JB
0 Z* q) p+ H' T/ y, U, o | bit,rel
# z# [) p4 I; ?6 w | 如果直接寻址位为1 则转移
/ V! ]1 n/ S, h. b$ y | 3
% z% R; E; L4 o: P: f | 2
6 f, D6 z$ a! X5 q4 D. f$ t | JNB
. |6 i- O" F' U3 k! `) r | bit,rel1 C# W: p& ~, y6 @0 v2 o3 S& E
| 如果直接寻址位为0 则转移
- y4 y1 H" g4 G8 o | 3
; R7 @( o# l. i: p+ V* l$ I | 2
/ e% b6 p; L. g& E4 ^( \) U8 x: }7 _ | JBC/ v( K/ c1 u, s9 |* J9 { W
| bit,rel
; j, `7 A+ r; I3 E) ^ | 直接寻址位为1 则转移并清除该位/ {( `% i1 ^, Z. b+ r/ [$ i. Y" H
| 2) G+ p: D0 K5 ]8 y1 s( a! D
| 2
! j8 d5 x0 G; C& C$ S/ { |
7 `! I6 ~5 J, W/ l& x
' \4 d8 { ]7 ^& W d
. z2 ?- q( W( m+ j. v(伪指令) | ORG
$ ]9 f0 [5 b' | | 指明程序的开始位置& \( A* v) y, Z |8 Q
|
# y- H! h0 k! K% g* k3 X6 U | DB
+ ~3 d" M. ?; [+ `" t. r! k) ] | 定义数据表5 e( }) P% E5 |! }1 z
|
5 F* s( d, P# | | DW! m+ ?, b! T' `
| 定义16 位的地址表, ?6 m/ {" H+ O
| 9 ?9 M% d/ w; A$ o N
| EQU9 u: V% }- M! i
| 给一个表达式或一个字符串起名
/ R" o+ W. A, }3 ?. Q* T |
: U/ U0 [# ]/ g$ P9 f4 R- g |
DATA q& I. H* w& O2 z5 h0 a
| 给一个8 位的内部RAM 起名
2 k8 I1 J1 [7 t# T% y! p | 6 \( W0 [7 g, N# N& `) S
| XDATA, D& ^6 y, a |
| 给一个8 位的外部RAM 起名
/ N: f! E( S* L' p A) |! s+ I9 x |
; L1 h+ ^# u9 V% f3 A& u1 @ | BIT
3 j$ C8 l# Q1 a v8 h2 n2 n | 给一个可位寻址的位单元起名
8 B# w4 B1 I2 Z& T |
' h6 P- q; n3 m. p* u1 k) j0 ^+ P! l | END
% u2 r' R1 |' X9 g1 ] | 指出源程序到此为止
8 v: [. [' c# W) M8 V% ` | 4 i+ @) j+ Y: f$ D$ l% B1 X" L; F
|
4 T7 V2 j. @2 c; h0 V' i9 q(指令中的符号标识) | Rn0 g4 O" x8 {0 z5 _; L
| 工作寄存器R0-R7
3 d' N+ M8 L0 a9 \ | Ri
; W( s0 a' \5 Z1 {9 a- T | 工作寄存器R0 和R1, J% `2 Q: m' n: j' O7 z
| @Ri% z! L% J, F _- Z8 O1 d
| 间接寻址的8 位RAM 单元地址(00H-FFH)
1 o, ~ t2 S4 H& v3 t1 a | #data81 P0 Q" n- L' |
| 8 位常数
, P6 T3 @$ d, c R, _ | #data16
0 q$ r0 z( ?% y+ a* s( ` | 16 位常数8 ?+ S1 y; i5 a0 D2 S \3 A& C
| addr167 J+ U7 F4 P" a. z
| 16 位目标地址,能转移或调用到64KROM 的任何地方( F, s5 c& y1 l
| addr11
- D; D7 Q* u) ` | 11 位目标地址,在下条指令的2K 范围内转移或调用0 C4 p0 I# X: J" ^- n$ ]
| Rel2 q: I H2 Y7 t! A& Q+ \, D
| 8 位偏移量,用于SJMP 和所有条件转移指令,范围-128~+127
_/ t4 U" v7 J F | Bit+ q! w, ?* U5 T6 z/ Z8 r
| 片内RAM 中的可寻址位和SFR 的可寻址位
% r8 [6 L. f9 o$ U) C | Direct
# U6 {/ t/ \; U Z5 w | 直接地址,范围片内RAM 单元(00H-7FH)和80H-FFH8 A& Y1 ]! F, H1 \$ y( b. C f# x
| $
( J/ k( ]) j2 p- u7 ` | 指本条指令的起始位置! }' W& { I( m
|
' [; I2 P# B- k: N. u
|
|