TA的每日心情 | 开心 2022-1-21 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
常用单片机汇编指令:
$ T, I# ~3 m. Q& q9 S: g# U1 .MOV A,Rn 寄存器内容送入累加器) t2 u, v* N: L
2 .MOV A,direct 直接地址单元中的数据送入累加器' U5 ~/ a0 t0 e* a- L
3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器
4 ?* \7 N5 L* ?, G* x4 .MOV A,#data 立即数送入累加器
4 c5 V' o/ J5 F9 `9 _9 i0 ]5 .MOV Rn,A 累加器内容送入寄存器
+ s( a. O5 M- o* ?* V6 .MOV Rn,direct 直接地址单元中的数据送入寄存器
, R7 v, ~ [9 T3 p( y$ q" o7 .MOV Rn,#data 立即数送入寄存器 % f8 D/ i" t; G9 ^* k |- F
8 .MOV direct,A 累加器内容送入直接地址单元
5 ~/ Y2 `3 A) Q' R$ s _# [/ @; I9 .MOV direct,Rn 寄存器内容送入直接地址单元. b$ B r" K1 o
10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 {1 K0 j( ?4 w3 ~
11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元 ' _. h9 [7 D' L3 b% R/ `5 R( N9 y
12 MOV direct,#data 立即数送入直接地址单元 & [7 m* H* C7 n9 W: Z o6 Q" L
13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元 * x/ {" _0 i% \4 E
14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元 + g) l" J _) m0 l2 U
15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元 . {7 {/ R7 W, d: l0 l# m3 _
16 .MOV DPTR,#data16 16 位立即数送入地址寄存器 8 X1 ^ W- b# g* u0 Z& }* Q, z
17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器 ) F/ r/ n) ]; N. M
18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器
& K+ S- ~9 `* i) {( j# I0 Q19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器 ! V0 ?& e7 k) {: q+ U: x) i# j, m, G
20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器 & {2 \0 } q' o$ W) B
21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)
" o- q# q* R* [ g7 M: h22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址)
$ f9 p% X$ K+ X9 y23 .PUSH direct 直接地址单元中的数据压入堆栈 ! @: d0 W/ M8 |0 k* l( _. I% d3 ]
24 .POP direct 弹栈送直接地址单元 5 k% T" q1 H$ @$ F
25 .XCH A,Rn 寄存器与累加器交换
( b" J1 Y" R7 D; a% i26 .XCH A,direct 直接地址单元与累加器交换
* A9 y: a% G$ U' ~27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换
j4 K, p/ {/ n$ f9 x% u9 V28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换
4 ]) {4 r, ?, c# ?* g6 g; d
6 b' s( T6 Q+ f8 T7 S算术操作类指令:
5 Y* o( y% D3 J; G2 ^' X% I( d+ I
1. ADD A,Rn 寄存器内容加到累加器 8 }6 }' N- P" Y, F" h- ]- U) i
2 .ADD A,direct 直接地址单元的内容加到累加器 5 ]# y3 h% {' m3 L: l- ^
3 A.DD A,@Ri (i=0,1)间接ROM 的内容加到累加器 ' p. n, V- K5 U* y
4 .ADD A,#data 立即数加到累加器 n% X3 S) m; D% u) n E+ q
5 .ADDC A,Rn 寄存器内容带进位加到累加器 T( h' X. N& w3 X
6 .ADDC A,direct 直接地址单元的内容带进位加到累加器
# e: p4 ]0 G/ O0 ]) ^7 .ADDC A,@Ri(i=0,1) 间接ROM 的内容带进位加到累加器
3 ]- p0 l% y( o$ e8 .ADDC A,#data 立即数带进位加到累加器 / U, Z" R; f0 I7 V% Q- r* C
9 .SUBB A,Rn 累加器带借位减寄存器内容
' A- R( A, _; ~2 _" d$ ]10. SUBB A,direct 累加器带借位减直接地址单元的内容
7 F7 Y" b* g: `4 }11 .SUBB A,@Ri (i=0,1)累加器带借位减间接RAM 中的内容' z2 d0 U- H" n7 M
12 .SUBB A,#data 累加器带借位减立即数
. N3 [6 L( ~: f6 v' `+ N13 .INC A 累加器加1 3 T q P! v) U* f
14 .INC Rn 寄存器加1
$ d# J9 N) J! k8 t15 .INC direct 直接地址单元加1( D* t* J4 s+ o+ K5 ?/ u
16 .INC @Ri (i=0,1)间接RAM 单元加1
+ W3 ?) G& x1 }17 .DEC A 累加器减1
) {! s- o' m+ f7 Z) d( g18 .DEC Rn 寄存器减1
0 n0 o2 c( W4 c- O* F19 .DEC direct 直接地址单元减1
/ E8 s' v) L2 H$ |% o# J' @20 .DEC @RJ 间接RAM 单元减 1 8 {. U$ T& M2 S& x% P+ O
21 .INC DPTR 地址寄存器DPTR 加 1
6 [5 C0 S: O- Z9 y n) c) r22 .MUL AB A 乘以B,结果放在A
& I9 |# s5 [' O1 Y6 a) J23 .DIV AB A 除以B,结果放在A & H; g) Z5 p" x
24. DA A 累加器十进制调整
9 _+ t( C' u4 K3 }& t; M# z$ s# {# i( j
布尔变量操作类指令:
, q4 x5 p$ l# {7 l) O0 f% \- {7 C) d: d! H$ W+ U7 h- ^
1 .CLR C 清进位位
( ~0 O4 p& t/ D! d& U9 }* K2 .CLR bit 清直接地址位 5 x4 h0 B- S' @3 p
3 .SETB C 置进位位
1 K5 q! X& f! W* p5 ]+ M4 .SETB bit 置直接地址位
, R2 N8 }5 Q4 K2 w5 .CPL C 进位位求反 7 L2 l; K" }9 O) a0 [ j" R% O
6 .CPL bit 置直接地址位求反
) [" Y8 i8 {, V5 q9 K6 [# Q2 S* Z. s' ~7 .ANL C,bit 进位位和直接地址位相“与”
+ C4 T/ D$ M& \3 J8 .ANL C,/bit 进位位和直接地址位的反码相“与”
1 C7 X/ |8 g8 `4 b9 .ORL C,bit 进位位和直接地址位相“或” 7 C/ z D" s _1 L S$ \
10. ORL C,/bit 进位位和直接地址位的反码相“或” * \3 l4 [$ m. ]% |3 {0 S
11 .MOV C,bit 直接地址位送入进位位 . ?9 p' T1 @( P; {- t# l$ y/ f3 n% F
12 .MOV bit,C 进位位送入直接地址位
8 d0 S: k. l4 v3 E* M9 p8 n- C13 .JC rel 进位位为1 则转移 : @* m% l; H4 Z& P. h
14 .JNC rel 进位位为0 则转移 8 u: X- e B- ~' _( Q$ T1 G) K
15 .JB bit,rel 直接地址位为1 则转移
$ Z6 z" M1 x" B/ f/ t' j; `16 .JNB bit,rel 直接地址位为0 则转移3 K% x# g) ?" I# R; ?5 r; G) h+ S; d$ J. C
17 .JBC bit,rel 直接地址位为1 则转移,该位清零
J D) l; g/ j& W6 r/ O9 e8 V* o2 c- W1 K) S8 ^5 j
逻辑操作数指令:, v! D2 I; |3 _# t3 F, B
7 d# j6 [9 b; M" A3 \. X1. ANL A,Rn 累加器与寄存器相“与” 7 |4 ]# r) m% }3 `6 r) K( [- |) f
2 .ANL A,direct 累加器与直接地址单元相“与” : P) Q9 q' Q; [& I* `9 K9 X
3 .ANL A,@Ri 累加器与间接RAM 单元相“与”
3 c, {; q2 a! Y. V( I- Z4 .ANL A,#data 累加器与立即数相“与” . j) a5 @9 }: N# r
5 .ANL direct,A 直接地址单元与累加器相“与”
, c5 A3 Z/ O+ `0 M, h6 .ANL direct,#data 直接地址单元与立即数相“与”
# N1 v1 i4 M5 u( x+ k7 .ORL A,Rn 累加器与寄存器相“或” 7 ], q5 J f: I! N; h
8 .ORL A,direct 累加器与直接地址单元相“或”
) |' o1 z+ T9 g" b) x, z: C9 .ORL A,@Ri 累加器与间接RAM 单元单元相“或”
% C+ L6 f3 r( r8 j5 A10. ORL A,#data 累加器与立即数相“或” # i" b1 E) T9 Z4 |" C1 Z
11. ORL direct,A 直接地址单元与累加器相“或”
: E% ]- H0 f. e! e+ s12 .ORL direct,#data 直接地址单元与立即数相“或”
/ X! p/ {: `4 N+ n5 k/ f9 U13 .XRL A,Rn 累加器与寄存器相“异或”
) j% G9 s `, G& M" C14 .XRL A,direct 累加器与直接地址单元相“异或”
+ ?7 P; ?7 _: c15 .XRL A,@Ri 累加器与间接RAM 单元单元相“异或”
9 Z8 y8 z: v+ ?7 `+ U' D5 b/ N16 .XRL A,#data 累加器与立即数相“异或”" `, _# g0 {* p& f9 p
17 .XRL direct,A 直接地址单元与累加器相“异或”
$ F6 I a- K( I" q. `18 .XRL direct,#data 直接地址单元与立即数相“异或”6 ^- L. r, O% U9 ?6 K; h: q
19 .CLR A 累加器清“0” 4 f0 _0 r7 e, k' N$ L
20 .CPL A 累加器求反 6 T) x" I8 x# Z& U( v
21 .RL A 累加器循环左移 ! Y- ~6 x$ E- a) N* J% C0 z
22 .RLC A 累加器带进位位循环左移 $ O5 R1 g9 J" \% s3 T
23 .RR A 累加器循环右移 ; d) h* R: h) T+ j" J
24 .RRC A 累加器带进位位循环右移
! L5 T5 F8 Z2 I4 A25 .SWAP A 累加器半字节交换! o8 L$ e3 [. {
' a' _3 Y, ^8 X/ G8 i. w控制转移类指令) q$ @. L/ c( r
2 e! `3 t8 j/ ]0 G3 r- Z; t* ?
1. ACALL addr11 绝对(短)调用子程序 9 b6 {& x* d6 \
2 .LCALL addr16 长调用子程序 5 q' T& }4 B2 k( d1 M' J
3 .RET 子程序返回
- P7 S6 H9 G$ O4 .RETI 中断返回
7 E. @: y1 |& r" W& _- n( y5 .AJMP addr11 绝对(短)转移
6 I6 }/ x; i# y3 N6 K! f6 .LJMP addr16 长转移
" ` K3 G U3 D/ D: C7 .SJMP rel 相对转移
9 z: _ N; J0 o7 i5 d7 T8 .JMP @A+DPTR 相对于DPTR 的间接转移
: v% L3 {7 r6 c9 y6 A& _3 A9 ^9. JZ rel 累加器为零转移 ( O( k! ?0 \ @+ @ d' o
10. JNZ rel 累加器非零转移 ! e+ [/ h) b: w! |
11. CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移
! m* F, v6 S" N, I12 .CJNE A,#data,rel 累加器与立即数比较,不相等则转移 : s: Y6 m! |3 d6 {8 ]) [" y1 Z
13 .CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移
: a) J+ C0 E" P9 u0 Z; g1 Q14 .CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移
# w$ N7 u" b x# ]" N15 .DJNZ Rn,rel 寄存器减1,非零转移
7 J' {+ v4 S5 W16 .DJNZ direct,erl 直接地址单元减1,非零转移
" e& l, J1 q+ J# }- K1 J17 .NOP 空操作 |
|