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

单片机常见的汇编指令

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    常用单片机汇编指令:9 G* I; c3 f- }3 w9 A
    1 .MOV A,Rn 寄存器内容送入累加器! @1 u  Q# f) R8 R; ^
    2 .MOV A,direct 直接地址单元中的数据送入累加器0 o: h5 ?0 o  H: t+ c
    3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器' i6 J' L% b+ ]3 ]! u. }9 ~! K3 ]% ^
    4 .MOV A,#data 立即数送入累加器: v! V; ]# y( m
    5 .MOV Rn,A 累加器内容送入寄存器   " s6 m0 _* h4 V. r* k& ?
    6 .MOV Rn,direct 直接地址单元中的数据送入寄存器; J( m: C3 W/ b0 L
    7 .MOV Rn,#data 立即数送入寄存器   
    - r, V+ m- d. C+ K8 .MOV direct,A 累加器内容送入直接地址单元  
    7 o. H/ c+ S0 v0 h9 .MOV direct,Rn 寄存器内容送入直接地址单元
    # x# T2 T+ \+ p10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元     f: Z! i% `% L0 X3 F0 _/ D
    11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元   - a% l( w- k5 b& U, e
    12 MOV direct,#data 立即数送入直接地址单元  
    / R7 P# M  U* x- J% z13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元  
    1 [" Z% K( ?# d: T  `+ m14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元  
    0 i) |1 ~( b. c# |( Z' K% E# U+ G* m15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元   ) Q4 S0 b& F4 ?* T4 I
    16 .MOV DPTR,#data16 16 位立即数送入地址寄存器   - n! f* {  n( A* H$ [' t
    17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器  1 w; W0 _& q# C! @2 @
    18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器   3 |2 n; J7 d" g( ?& S! d4 }3 v; M, k
    19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器   6 `. K) ~4 ?) }
    20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器   
    2 d0 T9 ?( v& [% g* v1 G21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)   0 J& y0 H- ?/ M8 M
    22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址)   
    4 J. t' }3 r$ B9 r) W* B23 .PUSH direct 直接地址单元中的数据压入堆栈    r$ I' D, a) S/ b9 v' h7 Y
    24 .POP direct 弹栈送直接地址单元  
    $ [0 B7 @8 D% J25 .XCH A,Rn 寄存器与累加器交换   1 v! |& x# y) Q5 _( u
    26 .XCH A,direct 直接地址单元与累加器交换  
    8 h3 o# N6 d- f; S! o; t. D27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换  
    8 V* g8 h( i1 i4 |: P28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换4 @# L' z; |( y: U7 D# [

    1 a$ l1 D, F6 Z& G& C; I1 z算术操作类指令:
    $ J1 |+ v( F( I# r' E; t( ^) ]% M! z! L! J. ?9 Q" _4 c" J
    1. ADD A,Rn 寄存器内容加到累加器  
    1 @$ u5 l. j4 |3 Z3 l% v' A2 .ADD A,direct 直接地址单元的内容加到累加器  8 X% H6 q% I# g: Q2 a) v$ E% u% Q
    3 A.DD A,@Ri (i=0,1)间接ROM 的内容加到累加器  
    4 v! N7 R/ l) [+ q+ i. o& S4 .ADD A,#data 立即数加到累加器   ) |1 g8 k2 u) P* D) A% v
    5 .ADDC A,Rn 寄存器内容带进位加到累加器  ) @$ ?2 ?; h9 ~/ ^' |
    6 .ADDC A,direct 直接地址单元的内容带进位加到累加器  
    4 `# F2 v1 P; b! Z1 ~& F% b7 .ADDC A,@Ri(i=0,1) 间接ROM 的内容带进位加到累加器
    1 ^* l- J# s, r. \8 .ADDC A,#data 立即数带进位加到累加器  
    % e( n: K+ H) M0 Y; i9 .SUBB A,Rn 累加器带借位减寄存器内容   
    ' @9 p2 W: V# x- v( S! f10. SUBB A,direct 累加器带借位减直接地址单元的内容  
    - G7 B' z' `7 g2 \0 b( p11 .SUBB A,@Ri (i=0,1)累加器带借位减间接RAM 中的内容" `0 n7 `1 v* `
    12 .SUBB A,#data 累加器带借位减立即数   
    1 M7 g3 H& U8 x. O13 .INC A 累加器加1  * }) q8 M4 W% C% \$ w
    14 .INC Rn 寄存器加1   
    1 ]' P& V6 m' z2 V. J$ J7 F7 Z7 P15 .INC direct 直接地址单元加1
      C0 `& m  R5 o, p9 I% b* T8 B16 .INC @Ri (i=0,1)间接RAM 单元加1
    + n5 g7 ^, }/ q5 T& R4 A17 .DEC A 累加器减1  
    8 N6 F4 t# S! u# k, ], z18 .DEC Rn 寄存器减1  3 c9 r* w. C3 J5 C
    19 .DEC direct 直接地址单元减1  & Q* u! t. o' \9 y  Z# C
    20 .DEC @RJ 间接RAM 单元减 1   
    9 k$ M% m% ]! @; C21 .INC DPTR 地址寄存器DPTR 加 1  
    ( O" h* E' B) y$ A- U0 j8 s# Y22 .MUL AB A 乘以B,结果放在A  
    $ d. I. [5 i3 C, @" @( [4 j; d23 .DIV AB A 除以B,结果放在A  . e& ?8 H; f8 v& O
    24. DA A 累加器十进制调整0 A8 J4 k' _8 \% g

    0 \) |+ ?( o! F3 R' k& T布尔变量操作类指令:
    4 d8 ]% s( h/ f' E  ?# s' `
    ) F! V( V2 P3 h9 a9 v  g# o1 .CLR C 清进位位   # r: l0 l7 e5 X  o, a) w
    2 .CLR bit 清直接地址位  ! s) ~; {$ r5 u1 [6 z% W# j, N
    3 .SETB C 置进位位   3 |; C. A6 f, N
    4 .SETB bit 置直接地址位
    % M/ J; I7 |( _& _7 j( E7 _) Y! r5 .CPL C 进位位求反  ' u: j9 E/ s& L$ }) F* Y( T# K7 T
    6 .CPL bit 置直接地址位求反  / ?( L# S3 [& p' ^5 t
    7 .ANL C,bit 进位位和直接地址位相“与”
    % X- o7 a& B6 C% P+ q$ ^8 .ANL C,/bit 进位位和直接地址位的反码相“与”   0 R1 O1 Q6 c( O/ s" l6 F
    9 .ORL C,bit 进位位和直接地址位相“或”  5 o9 \; Y! y  D" D! c
    10. ORL C,/bit 进位位和直接地址位的反码相“或”  ! a2 n& J3 D$ ]* Y& h
    11 .MOV C,bit 直接地址位送入进位位  % Y3 E! i( j" Y8 \  T+ Y: a
    12 .MOV bit,C 进位位送入直接地址位   
    5 I  u/ P" `4 h0 P- m13 .JC rel 进位位为1 则转移   
    0 O- b# @6 U$ J+ g( t, u14 .JNC rel 进位位为0 则转移   # V0 V& d, p# Y% y9 U& T
    15 .JB bit,rel 直接地址位为1 则转移  # ?: z( q" V. g3 l
    16 .JNB bit,rel 直接地址位为0 则转移; Z8 n7 o. u- r5 Z7 ]# h+ |$ ]
    17 .JBC bit,rel 直接地址位为1 则转移,该位清零
    , W5 W/ t  q9 ^; A3 X/ U' N% |' _
    ) _1 S2 O" g  G逻辑操作数指令:
    . j9 B3 W+ r, V. A( d9 S$ K. ?
    : e: e8 v1 a. Q1. ANL A,Rn 累加器与寄存器相“与”  
    ! m+ R7 _6 w2 z2 n3 i% @, s# d3 R) I2 .ANL A,direct 累加器与直接地址单元相“与”  ) W8 k" _4 E( I# d6 a$ o! k! n
    3 .ANL A,@Ri 累加器与间接RAM 单元相“与”   
    . e7 Q! @0 e' n7 _4 .ANL A,#data 累加器与立即数相“与”   ) s/ v6 u/ b6 F6 _. [
    5 .ANL direct,A 直接地址单元与累加器相“与”  
    ) I# z7 W' U9 W" Y  d% N6 .ANL direct,#data 直接地址单元与立即数相“与”
    # L# Z9 S# s) G5 a7 .ORL A,Rn 累加器与寄存器相“或”  % y% G% g" E6 C2 S9 N- M
    8 .ORL A,direct 累加器与直接地址单元相“或”  % H; z7 A; p3 \" b# ~
    9 .ORL A,@Ri 累加器与间接RAM 单元单元相“或”
    . }( A' D7 \# n& v6 g$ l. C10. ORL A,#data 累加器与立即数相“或”  # I/ z) |! y- `; e
    11. ORL direct,A 直接地址单元与累加器相“或”  ( y7 \$ a4 ]  \$ j7 f
    12 .ORL direct,#data 直接地址单元与立即数相“或”$ [! b! n* J% R# o& X0 i8 [
    13 .XRL A,Rn 累加器与寄存器相“异或”   
    . E: t1 M- Z- a" j# T8 {14 .XRL A,direct 累加器与直接地址单元相“异或”  8 J, f' h( M4 |8 v: f2 D
    15 .XRL A,@Ri 累加器与间接RAM 单元单元相“异或”  3 R! F7 H& A8 r7 \7 F( p# J, ~5 R
    16 .XRL A,#data 累加器与立即数相“异或”- `4 h: r. @  E; m& I
    17 .XRL direct,A 直接地址单元与累加器相“异或”  1 h/ |* @" H: w( r
    18 .XRL direct,#data 直接地址单元与立即数相“异或”
    : a. C& e0 A/ G1 M8 s19 .CLR A 累加器清“0”  
    # T. T/ L" g- r1 g( a' O5 D8 ?20 .CPL A 累加器求反   & r: L: b: f  @
    21 .RL A 累加器循环左移  
    , s& G; |' s( P0 N3 R22 .RLC A 累加器带进位位循环左移   
    8 L. W0 ?* O( S( W23 .RR A 累加器循环右移   * E% u6 j! I* U2 K& K6 q
    24 .RRC A 累加器带进位位循环右移   
    ( Z! D1 h2 n( s* i, z/ I9 |25 .SWAP A 累加器半字节交换
      H; r1 p9 w" c. e1 V5 k4 R
    ; d, z0 T( C& {! D0 ^5 k- P控制转移类指令
    4 s+ V! U1 i8 v( G" T" \7 C3 q+ c; Z4 c% R0 Z; r+ E. o9 H3 `
    1. ACALL addr11 绝对(短)调用子程序   
      Z8 m/ `2 g+ B2 .LCALL addr16 长调用子程序  
    & U& G$ W: e: H+ x) F: X3 .RET 子程序返回  * k6 C# x9 ]& F9 j
    4 .RETI 中断返回   ! {! S2 n; Q$ @! X+ _) _0 G
    5 .AJMP addr11 绝对(短)转移  & [# t' o, O/ I: Y! Y) ^# t- O
    6 .LJMP addr16 长转移  
    6 ~1 d  K" F/ [1 w; r7 .SJMP rel 相对转移  
    ! x0 ]: [- g: X$ b" e2 l8 .JMP @A+DPTR 相对于DPTR 的间接转移7 a" f6 ?/ s7 |1 l
    9. JZ rel 累加器为零转移   # e( z7 @* p& m( [
    10. JNZ rel 累加器非零转移  $ b: b0 d$ M3 w
    11. CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移  . [/ r7 J4 h. I9 D/ k
    12 .CJNE A,#data,rel 累加器与立即数比较,不相等则转移  
    / }9 y. [" T9 M13 .CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移  
    ! Q+ X- J: e: u3 h4 t% T14 .CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移  / u6 y: f, d: S! U- o. f* a
    15 .DJNZ Rn,rel 寄存器减1,非零转移   , w, p8 X% Q1 g3 s0 w- s
    16 .DJNZ direct,erl 直接地址单元减1,非零转移  ! z3 L) l, A. q$ K9 y: F
    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-6-6 11:02 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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