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

单片机常见的汇编指令

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    常用单片机汇编指令:/ \  u. j8 Q% g8 {
    1 .MOV A,Rn 寄存器内容送入累加器
    . r5 g' B. t8 A. [0 E2 .MOV A,direct 直接地址单元中的数据送入累加器
    ' w' y2 s" h5 @9 m! w3 .MOV A,@Ri (i=0,1)间接RAM 中的数据送入累加器
    % q0 U0 `3 b+ ~& {5 I2 q& v- W4 .MOV A,#data 立即数送入累加器5 a# r, \+ {% \$ N
    5 .MOV Rn,A 累加器内容送入寄存器   ; d) r3 D5 H8 H2 F0 o0 U) b( `: v8 q
    6 .MOV Rn,direct 直接地址单元中的数据送入寄存器
    * z: Y8 l( k, l) X7 .MOV Rn,#data 立即数送入寄存器   
    4 l& p! j/ E5 I% s  z* Z  ^5 Y8 .MOV direct,A 累加器内容送入直接地址单元  " e; o2 n: J% l; ?
    9 .MOV direct,Rn 寄存器内容送入直接地址单元
    $ s$ i7 i( V$ }3 x6 q9 z7 v10. MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元   / i7 q! |+ y; Z# r! t0 Q6 f3 i
    11 .MOV direct,@Ri (i=0,1)间接RAM 中的数据送入直接地址单元   * V' s( K2 R0 s( k# P- l6 p0 j
    12 MOV direct,#data 立即数送入直接地址单元  
    # N, P+ H1 q8 K: o& [4 v13 .MOV @Ri,A (i=0,1)累加器内容送间接RAM 单元  " a$ J8 L4 {1 _/ s# S: n. R. {& G) g
    14 .MOV @Ri,direct (i=0,1)直接地址单元数据送入间接RAM 单元  % O+ X+ d* V) v3 b# c) X; K
    15 .MOV @Ri,#data (i=0,1)立即数送入间接RAM 单元   
    4 Z' ^' T$ P" @1 C; H4 U8 A16 .MOV DPTR,#data16 16 位立即数送入地址寄存器   
      E  F* A( z: O* a, T17 .MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器  4 ?- G1 S) Z6 A8 r1 H4 `; f% S: D
    18 .MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器   
    0 b+ E! @2 A1 o! A6 k19 .MOVX A,@Ri (i=0,1)外部RAM(8 位地址)送入累加器   + x: V( b" w! d. q% K# \! V# O
    20 .MOVX A,@DPTR 外部RAM(16 位地址)送入累加器   
    + F! ^/ ~9 j- k' m. r21 .MOVX @Ri,A (i=0,1)累计器送外部RAM(8 位地址)   
    3 |: Z' H  S2 P6 ^( i1 ?; r22 .MOVX @DPTR,A 累计器送外部RAM(16 位地址)   
    3 b( Y9 w9 A, c2 y* x9 Q: v' M! R23 .PUSH direct 直接地址单元中的数据压入堆栈  
    4 W* G5 E5 X' H  g/ u24 .POP direct 弹栈送直接地址单元  
    ' J  U  Z. t- Y3 C25 .XCH A,Rn 寄存器与累加器交换   / c* @) d: i1 g7 |; b+ e
    26 .XCH A,direct 直接地址单元与累加器交换  
    4 k; F/ n" o4 z27 .XCH A,@Ri (i=0,1)间接RAM 与累加器交换  
    9 l7 _$ ]% a0 y; w! n+ ?6 i28 .XCHD A,@Ri (i=0,1)间接RAM 的低半字节与累加器交换+ [$ W7 N2 }4 i; s

    ! k/ P& q; T% p: ?算术操作类指令:9 s0 g, G2 A$ N, r1 @) H
    ; X' e4 R$ Z% U/ K& U5 R
    1. ADD A,Rn 寄存器内容加到累加器  
    6 w6 K4 K1 i3 K! y. H9 P: t7 |- {5 W2 .ADD A,direct 直接地址单元的内容加到累加器  
    4 h8 X- t5 H( Q( y* T$ e6 H7 F3 ~8 a3 A.DD A,@Ri (i=0,1)间接ROM 的内容加到累加器  - {0 k8 X1 s) ], F' q; n, w
    4 .ADD A,#data 立即数加到累加器     j8 K  f7 t) k( ^+ F& v2 M
    5 .ADDC A,Rn 寄存器内容带进位加到累加器  , c/ [2 l- v4 O% k
    6 .ADDC A,direct 直接地址单元的内容带进位加到累加器  
    . K$ ^) g- h$ y6 Y2 e7 D2 q7 .ADDC A,@Ri(i=0,1) 间接ROM 的内容带进位加到累加器* G4 C( u  x' R) M$ Y) Y; z
    8 .ADDC A,#data 立即数带进位加到累加器  + h8 {, C" _* x% ~- P# M
    9 .SUBB A,Rn 累加器带借位减寄存器内容   
    " Y7 K, k8 m8 i, W9 B10. SUBB A,direct 累加器带借位减直接地址单元的内容  
    2 w4 U: `7 ]$ |11 .SUBB A,@Ri (i=0,1)累加器带借位减间接RAM 中的内容4 T- O2 r/ B, ~& O0 o9 {1 f$ r
    12 .SUBB A,#data 累加器带借位减立即数   0 O. Q# z( j# o" l) u: C
    13 .INC A 累加器加1  ) l  v+ T% a5 A$ }
    14 .INC Rn 寄存器加1   6 W, x, V7 q( s$ ^' w! t
    15 .INC direct 直接地址单元加1
    : G( S! W: N2 f5 ]/ F16 .INC @Ri (i=0,1)间接RAM 单元加1& ^$ C: }5 M& n
    17 .DEC A 累加器减1  
    6 O5 `8 B2 x# o3 r3 h18 .DEC Rn 寄存器减1  
    + j; r  H! ~8 s+ E$ }$ E! t" s1 O" e19 .DEC direct 直接地址单元减1  0 d- Z. d- p0 @6 w* }- ^
    20 .DEC @RJ 间接RAM 单元减 1   ) I/ Z" x3 O, h, D. \
    21 .INC DPTR 地址寄存器DPTR 加 1  
    7 g- `0 U& m6 Q# W0 W22 .MUL AB A 乘以B,结果放在A  
    7 g3 \8 M9 }% M23 .DIV AB A 除以B,结果放在A  + G8 l6 [0 L3 Y, T+ f# l+ J. @
    24. DA A 累加器十进制调整
    & H5 w" ?2 Q- O1 V3 _* e& t1 ~9 ^/ S4 L
    布尔变量操作类指令:! Y, W4 N6 U$ q8 M
      ~% a" Q  [, ^: q8 r" {* H8 S3 k
    1 .CLR C 清进位位   
    ! g! F( D6 f4 h& M9 ~: [' Y+ k$ C2 .CLR bit 清直接地址位  6 U  \" ?( y/ l" l" F% N
    3 .SETB C 置进位位   
    3 |* I/ H2 ^* d3 Q0 h( K4 .SETB bit 置直接地址位' q/ [! h5 X' n# k- h; u& q- ]& q
    5 .CPL C 进位位求反  
    7 l* \. v2 j& F6 z# N6 .CPL bit 置直接地址位求反  ; |3 R' Q1 A3 z$ P+ J
    7 .ANL C,bit 进位位和直接地址位相“与”0 N- I4 O4 O# B2 ]! P" s% F- a2 m7 H
    8 .ANL C,/bit 进位位和直接地址位的反码相“与”   ( b6 Z! V% |1 v& V: z. Z
    9 .ORL C,bit 进位位和直接地址位相“或”  
    7 C+ j% j0 j/ Q. e5 J10. ORL C,/bit 进位位和直接地址位的反码相“或”  
    ! \5 z) r6 k) ?& F; ~, {" O11 .MOV C,bit 直接地址位送入进位位  : |  d$ a( v3 J% Y8 ?6 l
    12 .MOV bit,C 进位位送入直接地址位   
    * l9 ~$ Z& H  |1 C13 .JC rel 进位位为1 则转移   7 S$ ?& i! Q1 t
    14 .JNC rel 进位位为0 则转移   3 ^& h" X$ u3 R1 V1 z$ U
    15 .JB bit,rel 直接地址位为1 则转移  ' S  b' |0 E9 H6 C3 W$ _  q
    16 .JNB bit,rel 直接地址位为0 则转移# m- A4 K6 ?5 E. T4 P3 o" Y8 D
    17 .JBC bit,rel 直接地址位为1 则转移,该位清零
    * ]) K2 a; f0 `& S4 T+ O. W: ~; B7 S6 N+ c# ?: U7 ~1 F
    逻辑操作数指令:2 l! O  I: A9 a0 s" d
    . ?5 x! d$ z. t( X
    1. ANL A,Rn 累加器与寄存器相“与”  6 q) {% ~' H( _7 M: t, q
    2 .ANL A,direct 累加器与直接地址单元相“与”  
    ; v; N/ @8 o* }% x6 O* N; n  \( Q9 @3 .ANL A,@Ri 累加器与间接RAM 单元相“与”   ; \& C0 j4 w, p. q+ A+ \& v
    4 .ANL A,#data 累加器与立即数相“与”   
    $ }3 ]4 J& G# T2 Q& C% x% g5 .ANL direct,A 直接地址单元与累加器相“与”  
    + X( a/ G1 ]4 Q$ d) @1 p* e5 |$ }6 .ANL direct,#data 直接地址单元与立即数相“与”
    0 D; H7 G+ y4 n5 h6 h7 .ORL A,Rn 累加器与寄存器相“或”  
    4 h; g) b$ k& F$ f8 .ORL A,direct 累加器与直接地址单元相“或”  $ K  ~  B' j  S- W
    9 .ORL A,@Ri 累加器与间接RAM 单元单元相“或”
    % r$ w) a4 |3 m) |- X) ~* g7 D1 I10. ORL A,#data 累加器与立即数相“或”  4 I" `9 p0 \) n  m: K
    11. ORL direct,A 直接地址单元与累加器相“或”  . L, J, L* M6 a3 y& E
    12 .ORL direct,#data 直接地址单元与立即数相“或”
    9 l: V2 B* ]5 e( B13 .XRL A,Rn 累加器与寄存器相“异或”   " G8 F$ b! ]5 h
    14 .XRL A,direct 累加器与直接地址单元相“异或”  
    - L$ S2 u  c4 |3 Y. \9 I9 O15 .XRL A,@Ri 累加器与间接RAM 单元单元相“异或”  & V! I; X: @' k( ~# e
    16 .XRL A,#data 累加器与立即数相“异或”! [' |. R8 I* {  o3 c
    17 .XRL direct,A 直接地址单元与累加器相“异或”  # r( B- `6 _# }8 p. z% y
    18 .XRL direct,#data 直接地址单元与立即数相“异或”
    * s- z0 B8 o3 F$ M$ j- P1 |19 .CLR A 累加器清“0”  ! C- o- \/ s  D
    20 .CPL A 累加器求反   2 R% i. m% |5 k; [
    21 .RL A 累加器循环左移  
    ) a' t4 b; d* O0 h8 B6 d22 .RLC A 累加器带进位位循环左移   
    ; h' f+ }. F: J: d6 G23 .RR A 累加器循环右移   
    # k* ^% q' g6 d$ m1 {24 .RRC A 累加器带进位位循环右移   ; c& [+ C2 h1 u, c: M1 V
    25 .SWAP A 累加器半字节交换
    ; I3 D0 T" c9 ]; S7 x; `2 k: o' r' r+ q2 Z% U4 x9 d) g
    控制转移类指令2 `7 `1 T! W# W! O
    9 M# @. m# Y5 ~# L% G
    1. ACALL addr11 绝对(短)调用子程序   
    : f2 @) b4 z' U& R$ J% K0 N# h) r/ B2 .LCALL addr16 长调用子程序  0 B4 {! F8 s  m4 g# G$ m
    3 .RET 子程序返回  3 x, r0 X9 ?1 Y! a
    4 .RETI 中断返回   . G; Q$ i" Z, ]/ T% [) G
    5 .AJMP addr11 绝对(短)转移  , @, f" X2 G, ^! k- H
    6 .LJMP addr16 长转移  
    4 P3 w) `) Z- t9 @# `9 X9 [7 .SJMP rel 相对转移  
    6 U& [3 |1 X' q& E2 I+ A8 .JMP @A+DPTR 相对于DPTR 的间接转移* W4 e5 W  l+ k+ J* o3 B6 e/ @# s
    9. JZ rel 累加器为零转移   
    + Z8 x& H  [2 S, E2 V10. JNZ rel 累加器非零转移  / [; |, q% F6 d3 ?8 x+ u8 B- ]( v
    11. CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移  
    # Q, h4 Z/ ]  p1 s, {8 V12 .CJNE A,#data,rel 累加器与立即数比较,不相等则转移  1 f8 a0 d; d. Z
    13 .CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移  
    , l. G/ a6 T! U. G( f* V14 .CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移  6 Y% @4 `6 B/ u) g% g8 g2 c! A
    15 .DJNZ Rn,rel 寄存器减1,非零转移   5 p5 h( S( B9 M2 t1 X( a
    16 .DJNZ direct,erl 直接地址单元减1,非零转移  
    6 f. f8 V% ~: q17 .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-11-4 18:34 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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