你的位置: 首页> 家电弱电> 单片机

51单片机汇编语言的指令格式

2016-12-07 12:24:02 |人围观 | 评论:

  一个简单的循环灯实例
  下图中的8个发光二极管代表 8 个彩灯,让我们看看是如何实现的

  STAT: MOV A , #01H ; 高电平对应的发光二极管亮
  LOOP: MOV P1, A ; 从 P1 口输出到发光二极管
  MOV R1, #10
  DEL1: MOV R2 , #200
  DEL2: MOV R3, #126
  DEL3: DJNZ R3, DEL3
  DJNZ R2, DEL2
  DJNZ R1, DEL1
  RL A
  LJMP LOOP ; 左移一位 , 下一个发光二极管亮
  END

  汇编语言指令格式
  [ 标号 ] : 操作码 [ 目的操作数 ] [ 源操作数 ] ; [ 注释 ]
   ↓     ↓    ↓       ↓       ↓
  LOOP :   MOVX    A ,    @DPTR ;   将外部 RAM 单元内容送到 A

  标号: 又称为指令地址符号。对标号有如下规定:
  一般由 1 ~ 8 个 ASCII 字符组成,以字母开头,其余字符可以是字母、数字和其他特定字符。
  不能使用助记符、伪指令或者寄存器的符号名称做标号。
  与操作码之间用冒号分开,带方括号表示为可选项。
  一个标号只能在程序中出现一次,不能重复出现。
  操作码是由助记符表示的字符串,它规定了指令要完成的具体操作。
  操作数指令操作的对象 . 操作数分为目的操作数(上例累加器 A) 和源操作数(上例中的 @DPTR). 目的操作数和源操作数的书写顺序不能颠倒 .
  注对指令功能的说明,以便于阅读,符号“;”后面的内容为注释。
  汇编指令及其注释中常用的符号
  Rn ------选中当前的工作寄存器区中的寄存器R0~R7之一
  @ Ri------选中当前的工作寄存器组中的寄存器R0或R1,间接寻址前缀符号direct------直接地址,一个内部RAM单元地址或SFR地址.
  #data ------------8位或16位常数,也称立即数. #为立即数前缀标志符号
  addr11------------11位目的地址
  addr16------------16位目的地址
  rel ---------------8位地址偏移量,值在-128~+127范围内
  bit---------------位地址.SFR的位地址(可用符号或名称表示)
  /-----------------位操作前缀,表示该位内容求反
  (×)------------表示以×为地址单元中内容
  ((×))--------表示以×为地址单元中内容为地址的单元中的





标签: