联系方式  客服中心 会员中心 切换到繁體中文

 单片机技术培训基地
 | 网站首页 | 资讯 | 培训中心 | 技术文章 | 软件下载 | 产品展示 | 留言板 | 电子商城 | 供求信息 | 求职招聘 | 
您现在的位置: 华信单片机 > 培训中心 > 教学资源 > 讲义资料 > 培训正文 用户登录 新用户注册
[图文]KEIL的宏汇编器A51介绍         ★★★★★ 【字体:
KEIL的宏汇编器A51介绍
作者:华信单片…    培训来源:本站原创    点击数:    更新时间:2005-6-8    


   A51
是一种具有通用特性和用法的重定位宏汇编器。它与Intel公司的MASM51宏汇编器具有很好兼容性,支持模块化编程,可以方便地与高级语言接口。A51宏汇编器支持汇编伪指令、宏处理指令以及汇编控制命令,在集成开发环境Keil C51中可通过选项对这些命令进行设置。

   A51汇编语言源程序是以“.A51”或“.ASM”为扩展名的汇编语言源文件。

符号与表达式

  8051单片机汇编语言程序由若干条8051指令行组成,8051指令行一般形式为:

  [标号:]助记符 [操作数1] [操作数2]  [,操作数3] [;注释]

  其中“标号”是可选项,它可用来表示程序的转移地址,同时可方便程序的调试。“

  助记符”是8051单片机的助记符。“操作数1~3”是可选项,它依赖于不同的8051指令助记符,有些指令不需要操作数,有些指令则需要1~3个操作数。操作数可以是数字、符号或地址。数字可以是10进制、16进制、8进制或2进制数。10进制数以“D”为后缀,16进制数以“H”为后缀,8进制数以“O”为后缀,2进制数以“B”为后缀,省略后缀时,则默认为10进制数。立即数的前面须冠以符号“#”。

  A51宏编绎器允许使用符号来表示数值、地址和寄存器名等,以增加程序的可读性。

  符号名最长为31个字符,第一个字符为英文字母A~Za~z、符号“_”或“?”,后续字母为上述字符或数字0~9。标号也是一种符号。一些符号已经定义为A51的保留字,用户不能对它们重新定义。这些符号及其意义如表1所示。

1  A51宏汇编器保留字

A51保留字

A

累加器

R0~R7

当前工作寄存器(共有4个寄存器组)

DPTR

16位数据指针,用于访问内部或外部地址空间的数据

PC

16位程序计数器,其值为下一条将被执行的指令的地址

C

进位标志

AB

用于乘除操作的寄存器对

AR0~AR7

表示当前工作寄存器的绝对地址,其值取决于指令所选择的工作寄存器组

   “AR0~AR7”表示当前工作寄存器的绝对地址,其值取决于指令所选择的工作寄存器组。其使用方法如下:
    USING     3      ;定义当前工作寄存器为第3组
    PUSH      AR2    ;将第3组工作寄存器中的寄存器R2压入堆栈
    USING     1      ;定义当前工作寄存器为第1组
    PUSH      AR2    ;将第1组工作寄存器中的寄存器R2压入堆栈
  
  ( 注意:当程序中使用寄存器名“R0~R7”作为寻址方式时,工作寄存器组的选择,要用程序状态字PSW中的RS1、RS0位进行定义。)

   符号“$”是一个特殊的汇编符号,表示当前段的当前地址计数器。CODEDATA IDATABITXDATA这五个段都有不同的地址计数器。每执行一条指令,地址计数器值也随之增加。如果当前段发生变化,地址计数也将自动变到新段。

   例如下面一条指令:

 HALTSJMP   $      ;表示跳转到标号HALT

 A51中有三类运算符:算术运算符、逻辑运算符和关系运算符,如表2

2  A51宏汇器的运算符

运 算 符

例 子

意 义

+.-

+5-4

数或表达式的符号

+-

2+10-5

加减运算

*

1000H*2

乘法运算

/

17/4

除法运算

MOD

18 MOD 4

取模运算 (=02H)

()

8+(12-5)

改变运顺序

NOT

NOT 5

取反

HIGH

HIGH 1234

选择操作数的高位字节

LOW

LOW  1234

选择操作数的低位字节

SHLSHR

2 SHL 38SHR 4

左、右移位

AND

12H AND 0F0H

逻辑与运算

OR

12H OR 177

逻辑或运算

XOR

12H XOR 14

逻辑异或运算

>=

55>=17

大于等于

<=

32<=44

小于等于

=

12H=18

等于

<

21H<32H

小于

>

55>17

大于

  A51宏汇编器的运算符具有如表2所示的优先级,一个表达式中存在多个不同的优先级的运算时,将按它们的优先级顺序进行运算。如果一个表达式中各个运算都具有相同的优先级,则按从左到右的顺序进行运算。

3  A51宏汇编器中运算符的优先级

优 先 级

运 算 符

意 义

1

()

括号

2

NOTHIGHLOW

取反、取高、低地址

3

+-

正、负号

4

*/MOD

乘、除、取模运算

5

+-

加、减运算

6

SHLSHR

左、右移位

7

ANDORXOR

逻辑与、逻辑或、逻辑异或

8

>=<==<>

大于(等于)、小于(等于)、等于、不等于

     

  源码公开的MCS-51 单片机的宏汇编器 [PDF]

 

培训录入:admin    责任编辑:admin 
  • 上一篇培训:

  • 下一篇培训:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关培训
    没有相关培训
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)