|
. P: N$ k8 o4 J. ^; t
R7 T8 y% v; O2 Y( J数据传送类指令:
& K1 h5 y$ m( q2 ]" z' d
1 k9 X: M0 |# W% B; l( C1 MOV A,Rn 寄存器内容送入累加器 7 H4 M& d/ J0 Z" z9 X. G0 w2 \
& t1 D4 W ]8 t5 `
2 MOV A,direct 直接地址单元中的数据送入累加器 3 ]8 f7 d% Q1 Z, |4 Q ~& Q3 n$ t( d
+ e' J. q9 S. G* V* B" d6 A% T3 MOV A,@Ri 间接RAM 中的数据送入累加器 / l( p7 ]) I+ \
. f$ q7 {0 a: O6 y& T
4 MOV A,#tata 立即数送入累加器
X) d8 n7 C8 J4 L/ `) q, h- Z: }4 K8 M" h5 G. H. b
5 MOV Rn,A 累加器内容送入寄存器 K5 X9 @4 I8 F( L8 E& \/ a5 S- E
& z) N* y! x& ^1 r' s
6 MOV Rn,direct 直接地址单元中的数据送入寄存器
# n' _: X3 L7 t% U! E3 |' s6 l8 P& N. \+ _
7 MOV Rn,#data 立即数送入寄存器 , R# b4 g) e! H! l0 h v ^
3 o5 s" n, A' p+ w( ]1 u2 c
8 MOV direct,A 累加器内容送入直接地址单元
; K# c% h% A3 q- q; L9 J3 T
( l# V3 m$ ], L8 R$ t: `/ u" X: J9 MOV direct,Rn 寄存器内容送入直接地址单元 ; J! p- h( _# d, p
! R4 m* \0 J: Z7 j4 a10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 ) b6 ^# l2 _1 \9 B. x5 z
p/ n9 z& m; J( ~* E11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元
2 |- \9 l3 i( [7 [3 f
u! [6 z Z7 w. n. I3 J12 MOV direct,#data 立即数送入直接地址单元 " h0 [6 J0 H+ w% M4 v4 E
" N0 u4 F4 T. E# v13 MOV @Ri,A 累加器内容送间接RAM 单元 ! f" | l' L2 r0 D$ Q {1 K
4 W. A: ?" b- x14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元
+ d0 `" B) J6 ^$ F* L' p% a2 c7 z: B; y- `+ [
15 MOV @RI,#data 立即数送入间接RAM 单元 t1 t: T6 m. u8 D# B/ _5 ~* p9 @
1 @( x4 V0 e. e+ H" q/ B16 MOV DRTR,#dat16 16 位立即数送入地址寄存器
2 b* \2 Q" S. ?
4 b/ a9 l2 t+ Y$ M8 P$ y$ P17 MOVC A,@A DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 ! P! z7 q0 D; c- b) h3 I1 [
+ `, K2 M8 X, v18 MOVC A,@A PC 以PC 为基地址变址寻址单元中的数据送入累加器 ' C3 @2 j. }6 I( E+ l) v
1 [+ u9 D, K9 P% M1 D, a
19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器 ! ~$ s2 v, X W: K4 G% m* v
; f* [3 |! E7 U: ~$ ^/ ?20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器
, F1 i9 R% P; _1 w; ~' U* s! v. e- n& v* w' d% G
21 MOVX @Ri,A 累计器送外部RAM(8 位地址)
A1 Q, x5 E) Z8 z0 \( X
3 Q7 m( |# M, Z8 v) t22 MOVX @DPTR,A 累计器送外部RAM(16 位地址)
5 m5 z) z' x1 x( A8 s" E6 t& A+ S+ m3 V2 M" I
23 PUSH direct 直接地址单元中的数据压入堆栈
9 ?2 r' q; @: m! o- J, w% e, f0 q& t3 [; y( o
24 POP direct 弹栈送直接地址单元
2 |( s1 J0 L; H' j4 T/ B& a
( O1 j$ S" g8 r$ r1 l/ B; N25 XCH A,Rn 寄存器与累加器交换 3 V" t# G9 \' z# ^6 L
7 Q, H$ o8 Z( ?4 U
26 XCH A,direct 直接地址单元与累加器交换
. S0 @5 ?( a- b6 w$ l* m n. ^5 Z; @* Z, U" e3 w/ B+ O
27 XCH A,@Ri 间接RAM 与累加器交换 : ?5 i/ x( g, ]# X
N+ c" P* e5 J8 G) J" e28 XCHD A,@Ri 间接RAM 的低半字节与累加器交换 9 T/ f9 ^2 T* w$ ^
& X) q: Z* k. i2 ^( {9 J! Q0 X7 F4 o
! \6 H7 G5 N% ?: M: L" |- O% {算术操作类指令: . p. X. m" w. e3 \* u/ d
- d. u9 R3 V5 W5 N* [$ v! P4 ^1 ADD A,Rn 寄存器内容加到累加器
3 |6 F1 d* U: G- \1 k. c1 S2 ~
2 ADD A,direct 直接地址单元的内容加到累加器 2 {$ {3 K# ?4 l% T, O
0 C( }- H6 ^0 F$ c0 n) Y: m) Q
3 ADD A,@Ri 间接ROM 的内容加到累加器 1 W* P) R' L2 \8 |/ c8 W9 v
/ @6 q& W% ^8 V/ ?5 \% X% K4 ADD A,#data 立即数加到累加器 , ?2 v7 l: _+ Z6 s7 A5 e
- N' P8 Q4 ]$ y7 T$ W+ p4 C( I- x( g
5 ADDC A,Rn 寄存器内容带进位加到累加器
2 Z; `' @4 e) C' j7 I- m" y, s8 C; v5 R3 Z7 Y
6 ADDC A,direct 直接地址单元的内容带进位加到累加器 5 A! a9 ?6 n" \" G3 d, u
, P/ A8 a+ B$ J' u4 S2 S
7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器
& `' a# G7 a- B- B& V
D) Y# D$ F8 K2 [* X8 ADDC A,#data 立即数带进位加到累加器
# D3 ?6 l( G( Q$ F. ~$ E
! }, m* a# s' \9 SUBB A,Rn 累加器带借位减寄存器内容
) B8 b# F/ A3 M7 f2 Y7 d: i* w; F2 @5 n9 C$ _0 M4 {
10 SUBB A,direct 累加器带借位减直接地址单元的内容 " h& o3 \9 s3 F' m/ Z
1 k+ [" t/ s$ C( X11 SUBB A,@Ri 累加器带借位减间接RAM 中的内容 * w8 I6 c8 L$ h' H: d: }) z F" p* _% P
3 ] Z5 j( n5 ]12 SUBB A,#data 累加器带借位减立即数 3 D& _3 N, r/ H9 |- F& n: u& w7 T
" ?; o- n: C. f0 ]" z13 INC A 累加器加1
: u- I+ d' _ M1 @
v& z) Z. m0 _, A: n2 b14 INC Rn 寄存器加1 * ~" `; e7 @0 U5 S1 {# g! @# T
5 g- K2 s. f& `! T" f, ~, ^0 i
15 INC direct 直接地址单元加1
7 a% G' _9 V6 X
8 F( l" S; `0 \9 C& A) X16 INC @Ri 间接RAM 单元加1
6 N: E s" f8 Y1 n) V+ o$ @* P& H2 h' O; \2 T, ]. F; e, {" D
17 DEC A 累加器减1
, s- A4 Y4 A" i3 R/ s1 n3 j6 x' _: k7 K' s! j/ B, z5 `
18 DEC Rn 寄存器减1 1 12
$ Y9 G& U3 W0 N+ b. ?
2 _) z( C1 f8 r+ s. h! g19 DEC direct 直接地址单元减1
- U. d$ E4 Y& C& V, E% M6 {# Y. A+ D& l! Z4 C" {$ y0 |: V
20 DEC @Rj 间接RAM 单元减 1 - V O/ S* F3 l! T- U$ }) k
Z) L/ O" D' m5 u6 F' T
21 INC DPTR 地址寄存器DPTR 加 1 3 V2 G0 f F; t" h4 t+ d: x9 Z
( o% [( I2 R& w- T7 M22 MUL AB A 乘以B,结果放在A
9 z1 h. I/ H& _. N. T* u2 [7 w: V! b( e; `
23 DIV AB A 除以B,结果放在A 8 a0 W% z+ D' Y" G+ U5 w
/ y0 y! L! u) d- l: Y
24 DA A 累加器十进制调整
/ d2 ~/ b+ o6 P0 m5 T' C4 `2 C8 V7 ~) Y' ?9 z4 e
" S, t/ R Z3 D+ Y, _6 i0 ]2 U
布尔变量操作类指令: 3 j7 ?/ h( N& z6 y, X/ `
% B% N9 A$ P: |6 e! j9 ?
1 CLR C 清进位位 ) L6 z$ h( v, {+ p) x
& o. s. d1 [; p5 I" Y# a2 CLR bit 清直接地址位
N, K6 q) J9 F2 b; [# N- k4 R7 K1 V. t
3 SETB C 置进位位 , {/ ^" L: t9 P
5 R# B1 D- b0 B+ Y" C3 p
4 SETB bit 置直接地址位
" j( P- V$ F2 R; w" X1 M) r& n0 _6 k) O4 o2 v
5 CPL C 进位位求反
+ Y6 s$ c5 m9 Z5 o( Q
; Q/ f- u5 V2 C: G: ?* z9 f3 O$ D5 d6 CPL bit 直接地址位求反
& d6 q* a) R) x& |$ U/ O/ y, K. k+ x2 t8 [+ }% f Q. t3 u4 ^3 Z
7 ANL C,bit 进位位和直接地址位相“与”
& c9 R" T" [, Q' B" G
% ^, J! ]" ~ d# c- v" a8 ANL C,bit 进位位和直接地址位的反码相“与”
) m- q! M6 M5 [0 d1 H& o6 z1 j( V* X4 a2 }. v' V/ V+ f
9 ORL C,bit 进位位和直接地址位相“或” ) A( a7 ]$ m" r) K+ e
9 r8 X, [% I" ~& G7 D0 \, ]
10 ORL C,bit 进位位和直接地址位的反码相“或”
Q- e9 O8 z' X
8 T2 ]9 C* N8 M, Y11 MOV C,bit 直接地址位送入进位位 $ F3 I8 U7 N' T0 n! H
& \- t0 j" M: ?# T% n) {
12 MOV bit,C 进位位送入直接地址位 5 D$ z- O- ^ B3 F- J
, k: V$ X- j5 f4 x/ h8 ?2 D13 JC rel 进位位为1 则转移 ~1 P5 M5 ?8 X. u7 k8 H
: e% [( H5 b4 E; w. E
14 JNC rel 进位位为0 则转移
7 z9 W: c% R& V& V& ]& X1 p9 P. M1 r) V: Y
15 JB bit,rel 直接地址位为1 则转移 / x* N8 X2 P B
4 Z, @& j) r; I, \0 f, t
16 JNB bit,rel 直接地址位为0 则转移 8 o/ i# h/ J0 |1 V. `
" d X X0 E) W4 }. h5 ^' a17 JBC bit,rel 直接地址位为1 则转移,该位清零
; R/ i8 |- N" S; R+ x$ o0 F
4 H9 L7 [' i" w5 J/ z: Q$ a7 J. m
$ ?6 O2 c2 o4 B0 A% h逻辑操作数指令: 2 \5 y' P' X2 U) M- ]" @ A0 E5 E( w
! X4 W6 R+ [# a% c3 b" O
1 ANL A,Rn 累加器与寄存器相“与” ' B) m, r3 D& _; w, K3 T0 U
8 W# n- x& l/ V
2 ANL A,direct 累加器与直接地址单元相“与”
3 j- U7 v3 S9 g; @4 g. Y: t/ |( H+ p9 A8 U8 y# U
3 ANL A,@Ri 累加器与间接RAM 单元相“与”
, Z8 E" u; m" S3 Z1 |( P$ Q; f6 x. X4 q; d% E; L
4 ANL A,#data 累加器与立即数相“与”
8 ^( G! w, g: V# w" c1 C! w% q; q8 Z7 s4 |
5 ANL direct,A 直接地址单元与累加器相“与”
2 |# C: A4 |& e( |$ w
$ A' k/ [5 v! f9 |5 G. a5 ?6 ANL direct,#data 直接地址单元与立即数相“与”
: e2 g& h( a: y/ e6 \' Q" u% f5 r0 V; u6 j) |
7 ORL A,Rn 累加器与寄存器相“或” 1 d+ B H% {8 K
) c1 H1 J/ _( k0 I, O8 ORL A,direct 累加器与直接地址单元相“或” : _" G1 k1 m' n. V3 o- X1 z0 o
# q" o }# G$ G k- W
9 ORL A,@Ri 累加器与间接RAM 单元单元相“或”
0 R! y5 R+ }; D2 C: s
9 W- F e/ G8 F10 ORL A,#data 累加器与立即数相“或”
( M. h5 t( U9 v5 w; o2 l+ z
; v; D; w M, d# U/ G" ?$ `11 ORL direct,A 直接地址单元与累加器相“或”2 U' r8 u; p2 m; \* W
3 s- D R) i w8 c& F8 Y; `- z
12 ORL direct,#data 直接地址单元与立即数相“或”
% B$ \. q9 T- z* Y0 e% ?) K" K
& r* n. H& O6 a- A7 M' I13 XRL A,Rn 累加器与寄存器相“异或” 5 x( F( X& v$ M$ N
( j+ f s! r. M% x* Q1 g+ d14 XRL A,direct 累加器与直接地址单元相“异或” + |/ K: P9 p$ x; D, O. S0 H' j
8 A2 n ]0 _& z/ v2 o: Q6 W& ^, n3 n15 XRL A,@Ri 累加器与间接RAM 单元单元相“异或”
1 t, h; \% s6 N) Q
* I, G. l* J2 n16 XRL A,#data 累加器与立即数相“异或”
7 S# z5 Y: g' V
3 {1 Z# ^3 z0 s( c& \4 F- o17 XRL direct,A 直接地址单元与累加器相“异或”
( b8 F5 {/ [) y* B, m9 T+ ~9 L' _' n `) p4 \+ s) B1 A
18 XRL direct,#data 直接地址单元与立即数相“异或” ! ^1 h' E( L+ g5 m
2 E9 e0 _0 Z. ]- h7 N# a
19 CLR A 累加器清“0” . K6 [( n( z* F! b& Y3 j7 B8 \
5 W2 X2 f: ~2 d# m8 o. w# H20 CPL A 累加器求反 ) P; M# C8 Y" ?
- O% k0 e1 d+ @7 O+ }. Q8 h
21 RL A 累加器循环左移
) c: Y8 Y& m# I2 A0 h; r4 u5 J% W2 l4 |( f @. I: V
22 RLC A 累加器带进位位循环左移
0 a4 f+ E. N$ W0 z
Y4 I! i; |( S6 P, ?, r9 |23 RR A 累加器循环右移 % E* y Z: o4 i' ?# W
, ] k2 k. I" ]2 j7 Y+ t% z5 X t24 RRC A 累加器带进位位循环右移 - S; q8 }/ P4 K: d4 r0 H' z
/ U! B! A! H! l/ h- `
25 SWAP A 累加器半字节交换 & j3 S6 W9 h5 J$ V3 F- M
# P7 \& L4 o% K8 @
" h. G9 S) g, V3 r. N* B! E2 r( S控制转移类指令: * o8 X& B2 r( _% c1 A& P
) S; t( A& t% z2 y1 ACALL addr11 绝对(短)调用子程序
" m; E/ y. |2 T" f" s' n3 G) Y" P* G
2 LCALL addr16 长调用子程序
O7 u% z5 L% ^- X# x# p5 Y) i( V
a; U6 g/ d; W1 b8 e) B0 n3 RET 子程序返回 ]6 Z# u! t" _% d
2 \) t# L2 ?4 i
4 RETI 中数返回 ! q5 E% A6 q! h- M: W! z
! z r; L. _5 i# N- t: j5 AJMP addr11 绝对(短)转移 : M. |) E5 |- G4 A5 ^
/ a' w( Y+ J% E5 D( s9 I6 LJMP addr16 长转移 : N3 v2 L& ?4 i& s( Z
8 c5 D5 C& v8 W7 L3 o; h- w7 k7 SJMP rel 相对转移
0 k2 y: d- S6 V" K! J6 Q
& K& y# j, j# ~( e+ e, v- L# E8 JMP @A DPTR 相对于DPTR 的间接转移 8 L/ \& W- \2 a# q/ w' f( [
7 ]$ a0 I% U; z3 ~2 w9 JZ rel 累加器为零转移' w) v. E; r a4 l. d9 I W
* h' D5 T5 N S3 T: O9* JNZ rel 累加器非零转移
' }2 E& b \$ \1 i) x B7 n
/ r4 v3 F* n3 G' F$ `10 CJNE rel 累加器非零转移 , R- E: _* T) s+ q
+ c4 Q0 E3 Q) n, s
11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移 + @6 Q/ x* ^& N$ {" P' Y+ y) V
3 l# M* Q- z9 j9 e. t; S9 L3 [12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移
, P/ q/ o( N5 S) W/ P1 P0 H/ B0 I3 _; _1 l1 f g2 X3 Y H7 U
13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移
6 k8 J ]+ U) E0 ^) k( A# U4 ]# \6 q- h/ S# p- b2 D( V
14 CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移
9 Z( ^% g) o Z+ p' T2 F+ L4 X }# @* s: g7 S! J
15 DJNZ Rn,rel 寄存器减1,非零转移 * D4 ]* N1 _! z z$ T$ x( O% g' _
$ S9 }) {3 Z8 F7 a9 @16 DJNZ direct,rel 直接地址单元减1,非零转移
# R. ~0 ~ x, r. v8 Q
5 [+ a$ ]. u+ ^0 ^17 NOP 空操作
. p/ b1 A7 A& V9 i5 p) `4 y( [2 B. ^+ V/ ?7 T
|
“来自电巢APP”
|