TA的每日心情 | 开心 2022-1-21 15:22 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
常用单片机汇编指令:
: v" D# G+ s' u, ?$ w F( H# f1 .MOV A,Rn 寄存器内容送入累加器: M1 q4 ~$ `" ~6 @2 m4 i' m$ |, O
2 .MOV A,direct 直接地址单元中的数据送入累加器9 J* a( Q8 y0 X4 \
3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器
6 j& a& S5 V" k4 _" m( y# m4 .MOV A,#data 立即数送入累加器
) Y3 \2 u9 [& ~3 O g2 @9 v( B5 .MOV Rn,A 累加器内容送入寄存器
; m% c( c: j5 y: D6 .MOV Rn,direct 直接地址单元中的数据送入寄存器& @3 h; t: Y% z9 M- c `# r
7 .MOV Rn,#data 立即数送入寄存器 % B8 X, }1 V0 b
8 .MOV direct,A 累加器内容送入直接地址单元
0 A0 R0 f. _9 l9 D7 I! U3 @ I1 L9 .MOV direct,Rn 寄存器内容送入直接地址单元
( [, H; H% ^$ c' Y# c7 [10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 . O6 m7 B- k0 ?+ G
11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元 ( e z. J7 N' L% M; u. N
12 MOV direct,#data 立即数送入直接地址单元 % Y$ v: H" z# Z5 `, x8 i2 B4 J& S( x
13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元 8 P6 J' W# I6 o0 o
14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元
) F2 l+ R( }9 Y, R; ]3 l) D15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元 ( t/ M' q4 p) ~; N ]7 H
16 .MOV DPTR,#data16 16 位立即数送入地址寄存器
/ U7 X4 A. q$ V& _17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器
7 ^8 E9 S5 Q7 n2 {1 L. C18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器
$ t5 z& `# D V5 x5 E7 C19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器 5 s" L4 H: }* O: b
20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器 ' x# `5 U$ [ s# E; ?4 z1 v! _; V
21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)
8 s- l9 \8 I6 j4 N22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址) $ r5 w( g& m) v6 O
23 .PUSH direct 直接地址单元中的数据压入堆栈 " y2 n3 u+ b7 M0 O% U7 R
24 .POP direct 弹栈送直接地址单元
7 C ?, x0 B; w: ^& r/ E* |25 .XCH A,Rn 寄存器与累加器交换
/ @. I3 K& G1 x7 L5 v$ j3 i26 .XCH A,direct 直接地址单元与累加器交换
( T+ C; d! I7 K l3 d. i H27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换
/ J0 ?8 a) }- m" u6 w5 g28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换: z+ r3 w3 {2 c" |
7 r% a0 j' u. g C% m算术操作类指令:
+ S9 F2 X5 b1 l) x4 P v, K; N1 ]' A' i
1. ADD A,Rn 寄存器内容加到累加器 * _- c' d% `8 N, m9 X) i
2 .ADD A,direct 直接地址单元的内容加到累加器
# O( x! N- j3 Q2 H! E3 A.DD A,@Ri (i=0,1)间接ROM 的内容加到累加器 + v' n% c: ^2 n$ x" R* t
4 .ADD A,#data 立即数加到累加器 1 x) w1 y, Q' Y5 g
5 .ADDC A,Rn 寄存器内容带进位加到累加器
' V/ x6 S8 L& v% R* S( A6 .ADDC A,direct 直接地址单元的内容带进位加到累加器 & [" G8 v4 v9 v, E
7 .ADDC A,@Ri(i=0,1) 间接ROM 的内容带进位加到累加器
6 O- q" t- o8 s1 N5 L K8 .ADDC A,#data 立即数带进位加到累加器 7 A5 I0 q- P, @& l7 \' N
9 .SUBB A,Rn 累加器带借位减寄存器内容
! ?5 X ~% P8 h10. SUBB A,direct 累加器带借位减直接地址单元的内容
8 x8 S0 S5 f4 {; @, @2 }) y11 .SUBB A,@Ri (i=0,1)累加器带借位减间接RAM 中的内容
6 A8 t, A( F$ y+ S12 .SUBB A,#data 累加器带借位减立即数
, I: H- X" D) W! T' c13 .INC A 累加器加1 8 j# ?( M' ?6 @/ C' u3 \
14 .INC Rn 寄存器加1 * B4 k; M0 T% N) e, x) l
15 .INC direct 直接地址单元加14 _- X* A f3 N2 _! O
16 .INC @Ri (i=0,1)间接RAM 单元加1: [/ } ], A5 |3 v" ?( L
17 .DEC A 累加器减1
4 E Q! r, v7 f4 |! c18 .DEC Rn 寄存器减1 : ]( r& d+ q) _6 \! q" k9 r; [
19 .DEC direct 直接地址单元减1
6 s- g4 B9 N$ S: u0 K; v20 .DEC @RJ 间接RAM 单元减 1
3 t8 b y' g$ N! Q1 P1 k21 .INC DPTR 地址寄存器DPTR 加 1 0 A3 {* _4 {. H+ c* q
22 .MUL AB A 乘以B,结果放在A 8 q' e2 H$ V. i& H) Q, m8 _/ v
23 .DIV AB A 除以B,结果放在A , d. G$ G0 G& w1 @
24. DA A 累加器十进制调整
/ U, ~; Q1 i B9 [& [! o G
. a7 T* s7 c* [/ L- O# q布尔变量操作类指令:4 B; ^5 s' c- ?; q5 ~& y0 t+ [
( M3 m+ f( d& Y% Y# o
1 .CLR C 清进位位 : @+ r# V u8 B- d" I
2 .CLR bit 清直接地址位 4 E+ Z& h3 A$ c `- N! K1 [
3 .SETB C 置进位位 / P/ S! e! j& x/ N# |4 [$ }8 F) B
4 .SETB bit 置直接地址位+ U/ }, s6 N0 {! Z: F
5 .CPL C 进位位求反
. l8 K& R7 C' w! q6 .CPL bit 置直接地址位求反
4 \0 w) B. U2 B7 .ANL C,bit 进位位和直接地址位相“与” ]4 [/ g2 _2 G9 c/ d# z& k
8 .ANL C,/bit 进位位和直接地址位的反码相“与” e9 M* c5 a. X
9 .ORL C,bit 进位位和直接地址位相“或”
0 B8 H4 i8 }5 X+ ?+ G! |# A10. ORL C,/bit 进位位和直接地址位的反码相“或”
# X: G/ i% a9 ^0 |6 U% h. E11 .MOV C,bit 直接地址位送入进位位 $ D3 z; U) C5 t( d
12 .MOV bit,C 进位位送入直接地址位 ' L g3 X& V( t9 ^1 I" K% U1 y- m
13 .JC rel 进位位为1 则转移 ' n. [+ [+ u) g
14 .JNC rel 进位位为0 则转移
3 j/ m3 l, `, u: r: ~0 M& R# z15 .JB bit,rel 直接地址位为1 则转移 # D" }% h4 |$ }: p7 \
16 .JNB bit,rel 直接地址位为0 则转移
% t' b- S# }3 ~3 H1 t8 k17 .JBC bit,rel 直接地址位为1 则转移,该位清零
# o5 a- K5 \3 }. p
1 \. b# ~5 J* v逻辑操作数指令:) @/ @2 y& t8 d, J2 t5 t7 g/ x
5 c2 h: A1 W8 r- M, x( A( n u
1. ANL A,Rn 累加器与寄存器相“与”
) Z- b+ v8 i0 U' }! F, Q' I2 .ANL A,direct 累加器与直接地址单元相“与”
# t3 @6 p6 S8 c- }4 u- s/ D3 .ANL A,@Ri 累加器与间接RAM 单元相“与” ' C* K2 |6 X( E( m
4 .ANL A,#data 累加器与立即数相“与”
4 j# P% g7 I: K1 D2 ~; r) z" N$ B5 .ANL direct,A 直接地址单元与累加器相“与” ( D' ~( P) {# B
6 .ANL direct,#data 直接地址单元与立即数相“与”" X. @# V) h9 z/ b7 O
7 .ORL A,Rn 累加器与寄存器相“或” 4 O, M0 `/ q% \* G8 X7 B9 b
8 .ORL A,direct 累加器与直接地址单元相“或”
A$ | C3 F3 ]" A4 A9 .ORL A,@Ri 累加器与间接RAM 单元单元相“或”! [( E* j9 x6 v4 t5 K
10. ORL A,#data 累加器与立即数相“或”
: U+ X( ~5 l& ]' s, C11. ORL direct,A 直接地址单元与累加器相“或” 7 w) W' L$ | x' A
12 .ORL direct,#data 直接地址单元与立即数相“或”7 `* F [! d2 _
13 .XRL A,Rn 累加器与寄存器相“异或” * K# b2 ^1 F( P
14 .XRL A,direct 累加器与直接地址单元相“异或”
6 Q# J- S3 C+ [6 B; ~15 .XRL A,@Ri 累加器与间接RAM 单元单元相“异或” 9 U2 @; y# x/ N0 _4 E' F
16 .XRL A,#data 累加器与立即数相“异或”# l' o/ a. V0 S
17 .XRL direct,A 直接地址单元与累加器相“异或” : m+ K {: M: S+ A7 H
18 .XRL direct,#data 直接地址单元与立即数相“异或”9 ^% x6 p. I' k
19 .CLR A 累加器清“0”
2 P. \5 \6 H# Z1 J5 L, r20 .CPL A 累加器求反
, h) P4 O8 l: E* B6 d: g1 m6 W' v21 .RL A 累加器循环左移
8 ?1 [! y- b: D# {* p( k22 .RLC A 累加器带进位位循环左移
) i9 a+ Y( h& q i23 .RR A 累加器循环右移 . J" }; P2 g* H& e+ z( [
24 .RRC A 累加器带进位位循环右移 # s) h% n3 ^9 j) y% H0 T4 G
25 .SWAP A 累加器半字节交换$ c4 F4 M8 l! s. j G7 K% G
2 v; T. R/ H: N6 u* f2 H- X/ R9 U
控制转移类指令: Q5 j i \1 ?1 \7 P- ?
6 [( `, Y8 e5 K+ r k1. ACALL addr11 绝对(短)调用子程序
. y; s5 {: t; l" T) Z3 h1 P2 .LCALL addr16 长调用子程序 3 o9 g# K& L* m9 z" \7 s
3 .RET 子程序返回
! r( V. f9 S5 y1 m9 `9 D4 .RETI 中断返回
, \6 V5 d! V3 O" P( C5 .AJMP addr11 绝对(短)转移 8 E- h+ `: G! w: V: M
6 .LJMP addr16 长转移
" v5 h: w- e3 U q- I8 y9 M- D7 .SJMP rel 相对转移 1 q+ L1 I3 J- F+ I4 A5 v
8 .JMP @A+DPTR 相对于DPTR 的间接转移
9 `1 F. Z$ Q& U9. JZ rel 累加器为零转移
( v, \) _" V+ w$ F- A+ D1 L D1 ?10. JNZ rel 累加器非零转移 1 c& A- T& L8 A3 N
11. CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移 % H. C: H2 Q1 g7 f; ^' R
12 .CJNE A,#data,rel 累加器与立即数比较,不相等则转移
" b: C9 G4 X; _2 G6 P13 .CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移
q7 r6 q& b: A: ~+ r) y14 .CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移 - H4 y! g, J! O! s% l
15 .DJNZ Rn,rel 寄存器减1,非零转移
5 n3 ?; @9 S; n# R$ a9 W16 .DJNZ direct,erl 直接地址单元减1,非零转移
/ P* |3 T; Z' Q* i2 f0 K17 .NOP 空操作 |
|