找回密码
 注册
关于网站域名变更的通知
查看: 258|回复: 2
打印 上一主题 下一主题

单片机常见的汇编指令

[复制链接]
  • TA的每日心情
    开心
    2022-1-21 15:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-2-18 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    常用单片机汇编指令:
    - s/ @8 Y/ b; ^1 .MOV A,Rn 寄存器内容送入累加器
    : [5 o/ J, C+ _) Q( Y! S4 m8 g2 r" f2 .MOV A,direct 直接地址单元中的数据送入累加器
    $ Z: C5 I* P* M9 N3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器; J: C& V$ |- A* l
    4 .MOV A,#data 立即数送入累加器4 t0 {) v% \6 @( R/ P) U/ C( p
    5 .MOV Rn,A 累加器内容送入寄存器   8 F6 v7 Z, n+ }0 \5 F
    6 .MOV Rn,direct 直接地址单元中的数据送入寄存器1 d% R% ^4 Q7 W
    7 .MOV Rn,#data 立即数送入寄存器   
    : s1 f5 S" a9 G8 .MOV direct,A 累加器内容送入直接地址单元  9 o* k$ i! X) ]6 t3 D
    9 .MOV direct,Rn 寄存器内容送入直接地址单元
    # m' d6 l% @3 x( H10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元   4 q+ B$ ]  b7 p* ~) i' ?/ z
    11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元   
    3 r3 w! D  V  V; u1 L1 @0 F+ Y6 N( s12 MOV direct,#data 立即数送入直接地址单元  
    $ M3 @0 F2 {4 Q9 k* u2 b" Q13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元  . c% s* t: C4 o" J
    14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元  
    ( S$ n& m/ K- }: Q- y15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元   
    ! q3 q3 k; b* u+ r2 K" L; V16 .MOV DPTR,#data16 16 位立即数送入地址寄存器   7 p8 N8 U) y! d1 R* v  x
    17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器  
    6 A5 W% P% Y: [/ T- e18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器   
    4 K$ {2 d! Q7 t$ B19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器   3 V" p% Y( v2 _1 ^; U
    20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器   
    5 ?- Q  X7 b- ^' k& |6 t21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)   
    ( s4 A6 t8 O4 o/ o! [& ^22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址)   " d3 B2 j  J8 U, J: K& E1 Q' o
    23 .PUSH direct 直接地址单元中的数据压入堆栈  3 j, [" n$ m& j; Q
    24 .POP direct 弹栈送直接地址单元  
    ) W7 D6 ^) L! [) S- J; r25 .XCH A,Rn 寄存器与累加器交换   7 S8 m) |* ^) M/ h6 ^
    26 .XCH A,direct 直接地址单元与累加器交换  
    5 ?' m6 G! F3 @7 o5 O% Q; q8 J27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换  
    ' z+ @' [& u' M; G28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换
    ' o, m0 u; n7 c7 k% R8 n$ Q" F6 C, O
    - j0 H' c' _- m7 i& r& y: w' m0 j算术操作类指令:
    0 P- U$ U& J6 v& \# k5 ~& @# ~3 Y, |
    1. ADD A,Rn 寄存器内容加到累加器  , m! X- B6 ^2 M
    2 .ADD A,direct 直接地址单元的内容加到累加器  
    4 l. M% ]' c  h4 V. x3 r& t3 A.DD A,@Ri (i=0,1)间接ROM 的内容加到累加器  ; `. M% e0 ^9 q+ a/ r3 D8 n6 y
    4 .ADD A,#data 立即数加到累加器   , w8 e. U3 S) A  R; t( F" |4 n
    5 .ADDC A,Rn 寄存器内容带进位加到累加器  7 |2 y9 f3 t. t) T# y+ C* D4 n
    6 .ADDC A,direct 直接地址单元的内容带进位加到累加器  : K& y% }& `! H' {
    7 .ADDC A,@Ri(i=0,1) 间接ROM 的内容带进位加到累加器
    & ~+ d/ Y8 m" u5 ?; w8 .ADDC A,#data 立即数带进位加到累加器  # X8 T, T+ Y' f+ R( I
    9 .SUBB A,Rn 累加器带借位减寄存器内容   
    # b: }' D  V: z0 W% q7 x- j( O10. SUBB A,direct 累加器带借位减直接地址单元的内容  
    ( W" l$ e- }8 x* l8 F11 .SUBB A,@Ri (i=0,1)累加器带借位减间接RAM 中的内容2 ]9 n3 A1 B9 c) F% ~
    12 .SUBB A,#data 累加器带借位减立即数   2 |9 E+ r0 o0 h+ @, N! d
    13 .INC A 累加器加1  ' U7 [" J0 ^( a% ]9 m
    14 .INC Rn 寄存器加1   
    & @- y/ o: \2 z15 .INC direct 直接地址单元加1* k1 ^/ [6 a3 E, K7 B. H! a
    16 .INC @Ri (i=0,1)间接RAM 单元加1% _3 ~. m! Y- _  b" P* N' k- A
    17 .DEC A 累加器减1  * s  H% N' N7 M( E
    18 .DEC Rn 寄存器减1  
    9 b* r$ B& F* f- q2 m1 I) U0 y19 .DEC direct 直接地址单元减1  
    & u( [' ]5 }4 O3 o8 {4 W8 T) n* Q20 .DEC @RJ 间接RAM 单元减 1   , n. `9 D1 _0 ?# }
    21 .INC DPTR 地址寄存器DPTR 加 1  
    ) o) B6 h+ q& i( L; T22 .MUL AB A 乘以B,结果放在A  
    ( T, n& V6 ]/ @- m23 .DIV AB A 除以B,结果放在A  
    : i! h% s2 y. e: H9 p; q24. DA A 累加器十进制调整: U* s3 _+ q& S8 S# G6 m- \" k  R  y

    . Z7 G& l! E* t0 ?3 h+ ]布尔变量操作类指令:' B* A% J9 J$ o. f+ ]
    - n# F* _/ a  g+ ?4 l& \, ?" B
    1 .CLR C 清进位位   
    8 N& I2 C# k% e! ]4 H! {2 .CLR bit 清直接地址位  " @- t# ^6 ]# B" R5 A, ^
    3 .SETB C 置进位位   
    3 ^8 l& `' \- n; L  H4 z8 C4 .SETB bit 置直接地址位
    * F  z# u" [6 [5 .CPL C 进位位求反  1 M, u) L' A$ N% J
    6 .CPL bit 置直接地址位求反  
    / b! |3 G. Q: y; J/ A7 .ANL C,bit 进位位和直接地址位相“与”
    4 ^! D$ @* \% w# M1 K4 U& }8 .ANL C,/bit 进位位和直接地址位的反码相“与”   
    ( d, k6 x  E; I! L% ~( D9 .ORL C,bit 进位位和直接地址位相“或”  ; g0 o0 @5 j9 w* T  x4 ~6 {
    10. ORL C,/bit 进位位和直接地址位的反码相“或”  9 Z2 y+ ]' J2 i6 q. y$ v
    11 .MOV C,bit 直接地址位送入进位位  ' W  y6 d: K! S, s
    12 .MOV bit,C 进位位送入直接地址位   
    1 `# p. _, y. }; @# x3 N2 w13 .JC rel 进位位为1 则转移   
    2 [' Z2 d4 P8 C& h2 p14 .JNC rel 进位位为0 则转移   
    , m7 g1 s7 v; `! ~9 n15 .JB bit,rel 直接地址位为1 则转移  6 G/ R* B# o5 ]% ^; M# K$ O' q
    16 .JNB bit,rel 直接地址位为0 则转移
    # ]3 @. k# e& F3 s" v17 .JBC bit,rel 直接地址位为1 则转移,该位清零
    ; E' E  i) ]( F# |2 \
    , K$ g; h$ y& A) {, D6 X5 y" n/ C% w逻辑操作数指令:
    7 {1 M" {6 w* r9 m! z! p: @) q5 I4 [  A& q7 H2 ^/ @- R
    1. ANL A,Rn 累加器与寄存器相“与”  # a' U( D7 T: o8 X* V
    2 .ANL A,direct 累加器与直接地址单元相“与”  
    5 j2 [0 Y/ Z5 m3 j4 D7 R* I3 .ANL A,@Ri 累加器与间接RAM 单元相“与”   2 M# ^: N( I$ U# `; [% u( S" I) |
    4 .ANL A,#data 累加器与立即数相“与”   
    8 D; }$ A) Z$ X4 a2 o5 .ANL direct,A 直接地址单元与累加器相“与”  6 S- I+ D4 y4 D* M
    6 .ANL direct,#data 直接地址单元与立即数相“与”
    ; g$ w( \; s* Z' F- h4 B! z' H7 .ORL A,Rn 累加器与寄存器相“或”  & G( E' [. u. v" |  a8 B: k0 I4 G
    8 .ORL A,direct 累加器与直接地址单元相“或”  . g; m1 }$ j4 y9 J$ M6 h! y* B
    9 .ORL A,@Ri 累加器与间接RAM 单元单元相“或”
    6 N; b0 R( {! w( U10. ORL A,#data 累加器与立即数相“或”  2 Z$ _' s1 m) H, U  Z6 V9 K
    11. ORL direct,A 直接地址单元与累加器相“或”  " u$ d9 b  w4 @% X- n5 p* N) x
    12 .ORL direct,#data 直接地址单元与立即数相“或”4 a5 W" q; ?, ?9 n3 P4 L! P1 c0 y
    13 .XRL A,Rn 累加器与寄存器相“异或”   
    # q" J5 t# {. u0 a14 .XRL A,direct 累加器与直接地址单元相“异或”  
    ! d, W! J. x* S% `8 e) F# U15 .XRL A,@Ri 累加器与间接RAM 单元单元相“异或”  
    0 g) y& p1 c; R, B/ ]( E16 .XRL A,#data 累加器与立即数相“异或”
    ( v6 q* P0 ?: l. {, Q& R17 .XRL direct,A 直接地址单元与累加器相“异或”  ! y! y' n) }9 h! `# B: ?6 r
    18 .XRL direct,#data 直接地址单元与立即数相“异或”$ L$ `3 Y/ |6 B  P* b& d$ n" W
    19 .CLR A 累加器清“0”  
    2 f9 t6 j  d9 J1 K20 .CPL A 累加器求反   ; K5 ?9 V, r1 ?: K# M% v
    21 .RL A 累加器循环左移  
    7 Z9 Z0 p: A! w' l22 .RLC A 累加器带进位位循环左移   ; Y+ i5 X- j& y( p7 G! `: N# u& h. q; z, }
    23 .RR A 累加器循环右移   
    , {% ?) g/ P6 f( f1 t. p24 .RRC A 累加器带进位位循环右移   + q5 P% f1 w* Z: w- E+ t
    25 .SWAP A 累加器半字节交换2 N: K6 L6 ^5 D1 ~, F3 \1 S) |" C
    1 f  L; N; v+ A2 T; @
    控制转移类指令
    % h# L3 N2 b# Y1 L" |. x. m& @5 v. \% Q- D  v! t
    1. ACALL addr11 绝对(短)调用子程序   
    ! }: X* b* Q' z0 g% k1 L2 .LCALL addr16 长调用子程序  
    " Q/ b6 q1 L8 w: ?0 ^" S3 .RET 子程序返回  
    , l1 m/ E3 o/ D. L, v) N4 f+ _5 u2 T4 .RETI 中断返回   
    % W# h! E6 w( j; L& `1 h+ m6 ]5 .AJMP addr11 绝对(短)转移  2 T, |& f; J0 u9 L7 |! h3 V% S
    6 .LJMP addr16 长转移  
    / P: ]9 y* a2 `6 L, C7 .SJMP rel 相对转移  $ n" l) s& q$ Z0 x& D8 W
    8 .JMP @A+DPTR 相对于DPTR 的间接转移
    " O3 C' ?8 P+ Z' M1 O9. JZ rel 累加器为零转移   " H5 a5 n- d/ ^' Z4 w& H# B8 ?
    10. JNZ rel 累加器非零转移  & P: d2 b0 I+ J5 P
    11. CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移  
    9 W/ B( E& Z! g- a3 U12 .CJNE A,#data,rel 累加器与立即数比较,不相等则转移  , c8 c! g9 X( @+ \% v
    13 .CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移  
    + S5 Y3 y6 t' N  }* r( p, D) Y6 x: e3 u14 .CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移  
    $ _$ p, y+ `% p; Z6 R- y& g15 .DJNZ Rn,rel 寄存器减1,非零转移   - q5 m  P- u- p1 y
    16 .DJNZ direct,erl 直接地址单元减1,非零转移  0 \5 X% q" h& m. c9 J3 }
    17 .NOP 空操作
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2022-2-18 13:10 | 只看该作者
    指令整理的很齐全
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-2-18 15:39 | 只看该作者
    汇编指令要记牢
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-6 03:27 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表