ASM-51 宏汇编使用手册

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,1           10110011B

    10进制       ******      0,1,2...9    32768           缺省基数标记

    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

                 *           乘操作            ADD  A,R1*0E3H

                 /           除操作            ADD  A,R1/23

                MOD          模除              ADD  A,R1 MOD 12

                SHR          右移              ADD  A,R1 SHR 3 </

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
myasm51,小型的51单片机汇编器源码。 基于Linux环境下编写的小型的51单片机汇编器,源码开放,采用lex和yacc两个扫描和分析工具创建,代码小巧,易于研读和分析。对汇编源程序2遍扫描完成汇编,可以生成列表文件,Intel的Hex格式的文件及.bin格式的映像文件,后两种文件可以直接下载到单片机上运行。源码程序包内包含若干示例汇编源程序(.asm),proteus的格式的数字种的仿真文件,用以测试编译结果,另有编译后的dos下的可执行文件myasm51.exe,可以在windows的命令窗口下运行。另外提供一个简明的用户手册以供参考。以下为程序包的README: What is Myasm51 =============== Myasm51 is an open source mini-assembler for the Intel MCS-51 family of microcontrollers or the compatible ones, distributed under the GPL license. By scanning the source file in two pass, Myasm51 translates a symbolic code in text file (assembly language source) into a machine executable object file. During the first pass, the assembler builds a symbol table from the symbols and labels used in the source file. In the second pass, the assembler maps the source file into machine code and generates the listing file through what it receives in the first pass. Myasm51 is an absolute assembler and only generates absolute object files in the plain binary file (with .bin extension) or the Intel Hex file (with .Hex extension) which can be read by any ROM programmer to burn the object code into the ROM space of microcontrollers. How to make =========== We assume that the UNIX utilities yacc and lex have been installed in you system, and following these steps to build Myasm51 by the super user 'root' in the Linux or the UNIX cloned system. # tar zxf myasm51-gk-20151208_121306.tar.gz # cd myasm51 # make # cp myasm51 /usr/local/bin done. How to use ========== [root@rh9 myasm51]# cd examples [root@rh9 examples]# myasm51 Myasm51 Assembler. Ver 0.01 Release 1, (20151231_165818) Snallie@tom.com, Wed Sep 30 17:28:09 CST 2015 built: Dec 31 2015 - 17:04:44 Usage: myasm51 [-o] [-F] [-C] [-d] in.asm where -ob to output binary file 'in.bin' -oh to output hex file 'in.hx' (default format) -oH to output Intel Hex file 'in.Hex' -F to fill free bit with 0 or 1, (default 0) -C to t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值