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

单片机常见的汇编指令

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

    [LV.1]初来乍到

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

    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 空操作
  • 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-8-24 17:39 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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