ASM-51宏汇编使用手册
ASM-51宏汇编主要用来开发Inter8051系列单片机,它具有宏处理,数据处理,列表处理和条件处理等多种功能。源程序的编写完全采用Inter标准助记符和行格式。在编写程序过程中,可借助于文本编辑(Windows的记事本)或文字处理软件Word等编辑,
经ASM-51汇编后生成列表输出文件(.LST)和目标代码文件(.HEX)。此目标代码文件(.HEX)可直接用CZS-51或MedWin、Keil、Debug8051进行模拟/调试,或直接用于硬件仿真器上运行。当然,这也是要烧写到单片机ROM中的代码。
1、宏汇编语言的基本语法
1、1宏汇编的特点
ASM-51宏汇编完全支持Inter助记符的汇编语言,它含有宏语句,英文大小写字母,变量名,标号等不受限制,有二,十,十六进制和串参数类型,有汇编控制指令和多层条件语句,程序逻辑分段, 还有模块化程序设计的连接功能,汇编速度快等特点。
1、2汇编处理过程
(1) 用行编辑EDLIN或文字处理软件WS或全屏幕编辑软件PE等,编辑宏汇编
语言源程序,它的文件扩展名为。ASM。
(2) 用ASM-51宏汇编程序对上述源程序文件进行汇编,产生扩展名为.LST的列表输出文件和扩展名为.HEX的目标代码文件(.HEX)。列表输出文件包含源程序语句所汇编成的代码,以及有关的地址,语句和符号表等。目标代码文件包含源程序语句所汇编成的代码, 不包含任何符号信息或助记符。进行模拟/调试,或直接用于硬件仿真器上运行。
1、3语句
汇编语言可分为两类语句:指令性语句和指示性语句。
(1)指令性语句
这一类语句是指在汇编过程中能生成指令代码的语句(如MOV,DEC等)。其格式为:
[标号:] [指令助记符] [操作数][;注释]
其中方括号[  ]中为选择项。下同。
(2)指示性语句
这一类语句即通常所说的伪指令,它指示汇编程序后面的指示性语句如何产生代码。
ASM-51宏汇编完全支持Inter助记符的汇编语言,因此汇编程序的格式,指令完全与8051汇编语言一样,这里不再介绍它们的指令系统。
1、4 常量与数值运算
(1) 常量及其表示
常量,就是在汇编时已经确定的值。在汇编语言中,常量主要用作指令性语句中的直接操作数,也可用于存储器操作的组成部分(如位移量),或者为伪指令中的变量输初值。
为便于程序设计,常量有多种表示形式:二、十、十六进制数和字符串等,它们的格式各不相同,并采用不同的基数标记加以区分。表--1列出其格式。
表--1
数据形式格式取值范围例如备注
2进制********B      0,110011100B
10进制******      0,1,2...9    45723      缺省基数标记
16进制****H      0,1...E,F    0CDE3H      最前面一个字符应是0--9
ASCII        '**'        ASCII'AD'      只有DB命令中使用
常量以数值形式直接写在汇编语言的语句中称为字面常量,若预先为它定义一个符号名,然后在语句中用符号名来表示该常量称符号常量。使用符号常量的优点可改善程序的可读性,它的定义需要使用伪操作命令"EQU"或“=“。
(2)数值运算
宏汇编中,所有参数值均被认为是整数,并以16位的形式存放,表示的范围是0---65535,所有算术操作均对整数以补码形式运算。
(1)基本运算
汇编语言对常量允许进行算术运算,逻辑运算,分离运算等三种类型的运算。如表--2所示。
表--2                基本运算
运算操作含义以ADD为例
算+          加操作ADD  A,R1+36
-          减操作ADD A,R1-2EH
*乘操作ADDA,R1*0E3H
术/          除操作ADD A,R1/23
MOD          模除ADD  A,R1MOD 12
SHR          右移ADD  A,R1SHR3
指示汇编程序如何汇编的指令SHL左移ADDA,R1 SHL2
逻AND          与操作ADD  A,R1AND10000101B
OR或操作ADD  A,R1 OR 00110000B
XOR          异或操作ADD  A,R1 XOR 36H
辑NOT          非操作ADD  A,NOT 45H
分HIGH        高字节分离ADD  A,HIGH05E2H
离LOW        低字节分离ADD  A,LOW77F0H
说明:  R1为符号常量。
(2) 综合运算
综合运算规则1:计算表达式时,所有的运算全部从左到右顺序进行,遇到操作数就进行运算,不考虑优先关系,括号有助于视觉理解,但不改变表达式的?计算顺序。
例如:    R1 SETNOT(0C5FH OR 000CH)
其结果应为0F3ACH。
综合运算规则2: 当两个操作数之间没有参数相隔时,第二个操作符优先于第一个操作符计算。
例如:    R1SET NOT 10011010B
其结果应为65H。
1、5 程序分段

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。