宏汇编软件的使用宏汇编软件MASM51的使用
51单片机(宏汇编)指令集5
常量及其表示
数据形式 格 式 取值范围 备注
2进制 ********B
0,1
0进制 ******
0, 1,2...9
ห้องสมุดไป่ตู้
****H 0,1...E,F
0CDE3H
符应是0--9
ASCII '**' ASCII 'AD' 使用
示例
10110011B 32768 16进制 最前面一个字
HIGH 高字节分离 ADD A,#HIGH 05E2H
LOW 低字节分离 ADD A,#LOW 77F0H
ASM51汇编器通用伪指令
汇编起始命令
ORG 16位地址 (常数或表达式 )
定义程序/数据的起始地址
ORG $+5
ORG 0008H
汇编结束命令
END
汇编到此结束,其后面的内
运算 操 作 含 义
以ADD为例
+
加操作 ADD A,#RR1+36
-
减操作 ADD A,#RR1-2EH
*
乘操作 ADD A,#RR1*0E3H
/
除操作 ADD A,#RR1/23
MOD 模除 ADD A,#RR1 MOD 12
数值运算
操 作 含 义
以ADD为例
SHR
右移 ADD A,#RR1 SHR 3
格式: 字符名称 BIT 位地址 例如: fire bit p1.0
或者: fire equ p1.0
ASM51汇编伪指令EQU/BIT
TEMP EQU 30H ;定义变量TEMP地址为30H T_MOD EQU 40H ;定义定时器模式控制字常
5-MCS-51单片机讲义(宏汇编伪指令)
第五章 MCS-51宏汇编伪指令伪指令是对汇编起某种控制作用的特殊命令,但自身并不产生机器码,不属于指令系统,而仅仅为汇编服务的一些指令,因此称为伪指令。
其格式与通常的操作指令一样,并可加在汇编程序的任何地方,但它们并不产生机器指令。
许多伪指令要求带参数,这在定义伪指令时由“表达式”域指出,任何数值与表达式均可以作为参数。
不同汇编程序允许的伪指令并不相同,以下所述的伪指令适用于Intel公司的MASM51系统,但一些基本的伪指令在大部份汇编程序中都能使用,当使用其它的汇编程序版本时,只要注意一下它们之间的区别就可以了。
MASM51中常用的伪指令共分为五大类:1. 程序计数与结束伪指令:ORG、END;2. 符号定义伪指令:EQU、SET、DATA、BYTE、WORD、BIT、ALTNAME、DB、DW、DS;3. 附加文件伪指令:INCLUDE;4. 程序清单格式化伪指令:TITLE、PAGE;5. 一般控制伪指令:LIST、NOLIST、NOCODE。
下面简要介绍一下各条伪指令的功能:5.1 ORG功能:程序计数伪指令,用于设置由表达式决定的初始地址,ORG也称为起始伪指令。
表达式缺省为0。
格式:ORG 16位地址例如:ORG 0100HSTART:MOV A,#05HADD A,#08HMOV 20H,AORG 0100H表示该伪指令下面第一条指令的起始地址是0100H,即“MOV A,#05H”指令的首字节地址为0100H,或标号START代表的地址为0100H。
5.2 END功能:是汇编语言源程序的结束标志。
在END以后所写的指令,汇编程序不再处理。
一个源程序只有一个END指令,放在所有指令的最后。
源程序中若没有END语句,汇编将报出错。
5.3 EQU功能:将一个数值或寄存器名赋给一个指定的符号名。
格式:符号名 EQU 表达式或符号名EQU 寄存器名符号名=表达式例如:DELY EQU 3344HDELY1 EQU 30HPP EQU R0ORG 0000HJMP MAINORG 0050HMAIN:MOV DPTR,#DELY ;(DPTR)=3344HMOV A,#DELY ;(A)=44HMOV A,#DELY1 (A)=30HMOV PP,#10 ;(PP)=10MOV A,PP ;(A)=10NOPEND5.4 SET功能:SET指令的功能与EQU指令类似,不同的是,用SET指令定义过的符号名可被重新定义。
MCS-51上机与实验
MCS-51单片机上机与实验
5
MCS-51上机一般过程
WAVE6000集成软件
编辑程序
编辑
汇编程序
汇编
调试程序
调试
手工编写 的源程序
EDIT
汇编语言 源文件(.ASM)
机器语言 目标文件(.HEX DEBUG8051 MASM51 .BIN)
烧写 (.HEX)
2013-8-4
MCS-51单片机上机与实验
6
使用WAVE6000几个应注意问题
• WAVE6000的运行方法:
– 通过项目:源程序---项目---编译---运行。 – 通过源程序直接运行:源程序---编译---运行。 – 通过目标文件:直接调入目标文件(.HEX)---打开CPU窗口--运行。
• WAVE6000安装或运行中的异常处理:
– 仿真器的设置是否到位?(会出现P0,P1…口无法编译等情 况) – 调入目标程序前,项目是否己关闭(文件---关闭)。如果没 有关闭则会出现不能编译打开的源文件的情况。 – REG窗口(内含R1,R2…等寄存器)找不到:窗口---CPU窗口。
– 原因:程序存储器中每个存储单元默认的值是FFH,即没 有写上代码机器码的单元的值都是FFH,而机器码FFH 对应的指令是MOV R7,A,所以运行没有写上代码机器 码的单元时,其实就是运行MOV R7,A指令.
• 单步与跟踪
– 单步:依次执行主程序中的每一条指令.但不跟踪函数或 过程的内部. – 跟踪:依次执行任一条指令,跟踪函数或过程的内部.
MOV A,40H SUBB A,#01H MOV 40H,A MOV A,41H SUBB A,#00H MOV 41H,A
2013-8-4
51单片机(宏汇编)指令集5
软件陷阱:
所谓软件陷阱,就是一条引导指令,强行将乱 飞的程序引向一个指定的地址,在那里有一段 专门对程序出错进行处理的程序。 如果我们把这段程序的入口标号称为ERR的话, 软件陷阱即为一条LJMP ERR指令。
赋值命令
EQU 赋值命令。定义变量地址或者常数名称。 格式: 字符名称 EQU (数或汇编符号) 赋值后的符号名称可做:数据地址\代码地址\代 码地址\立即数\寄存器名 例如: ABC EQU 30H ABC EQU R7 不能重名定义
赋值命令
DATA 数据地址赋值命令 格式: 字符名称 DATA 表达式 注意: 表达式可求值(数据) 可以后定义先使用 ABC DATA 30H ABC DATA 30+20 不能重名定义
单片Байду номын сангаас原理及应用5
51单片机宏汇编和程序结构
51单片机的汇编语言(宏汇编)
只有指令助记符还不能编写出好程序,需要增 添一些“伪指令”。 伪指令用于控制汇编软件如何处理和按什么规 则编译程序。 伪指令不会产生“机器码” 不同的汇编器(仿真器、仿真软件)具有一些 不同的“伪指令”规定。 下面将介绍一些常用的伪指令
数值运算
汇编语言对常量允许进行算术运算,逻辑运算,分离 运算等三种类型的运算。 运 算 操 作 含 义 以ADD为例 + 加操作 ADD A,#RR1+36 减操作 ADD A,#RR1-2EH * 乘操作 ADD A,#RR1*0E3H / 除操作 ADD A,#RR1/23 MOD 模除 ADD A,#RR1 MOD 12
ASM51宏汇编使用手册
ASM51宏汇编使用手册2007-01-21 10:33ASM-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)指示性语句这一类语句即通常所说的伪指令,它指示汇编程序后面的指示性语句如何产生代码。
宏汇编软件的使用宏汇编软件MASM51的使用
宏汇编软件的使用宏汇编软件MASM51的使用第一节概述单片机开发可以用手工汇编和机器汇编两种方法。
采用手工汇编就是先编写出汇编程序,然后对照单片机汇编表手工将汇编程序翻译成机器码,最后将机器码一个一个地送入开发仿真器的RAM中去进行调试。
由于采用手工汇编的机器码是相对于存储器的绝对地址进行定位的,因此在调试时,若要在程序中增加或删除一条指令,就会造成指令的绝对地址发生变化。
这样除修改那条指令外,几乎所有转移、调用指令的操作数都要作相应的修改,稍有疏忽程序就会出错。
而采用机器汇编,在很大程度上可以避免上述麻烦。
只要通过键盘输入源程序后,其余作工作都由计算机来进行,即查出相应的机器码,对地址进行定位,建立能被开发装置接收的机器码文件、建立能打印出清单的列表文件等等。
机器码不需要再一个一个地从仿真器的键盘上键入,只要从PC机的通讯口直接传送到开发装置中去。
因此使用机器汇编大大提高了单片机开发的速度。
源程序被输入到机器中后,以一个文件的形式保存起来,然后就可以对这个文件进行处理了,要对这个文件进行汇编,必须有相应的汇编程序。
在PC机上进行汇编的程序有多种,以下介绍的MASM51软件就是其中的一种,它的主要特点有:1.对用户编写的源程序格式要求不太严格,例如,英文字母的大、小写不受限制,变量名或标号名没有长度限制,对源程序中的空格数也没有严格的要求等等。
这些给用户编写程序带来很大的方便。
2.具有较强的功能,例如支持宏语句,使同一程序中类似的程序结构,只要输入一次,在使用时可用宏语句调用。
此外还允许用条件汇编语句以及完善的伪指令系统等。
减少了编写、输入源程序的工作量。
3.不管用户的源程序有多少错误,它都能全部汇编完,并能形成列表文件及目标文件,以供用户修改错误。
4.可以接收汉字注释,并能完整的将汉字注释复制到列表文件,而其它一些汇编软件则不能处理汉字,或会使列表文件中的汉字注释混乱。
运行MASM51软件的条件很低,现在的PC机都能达到。
ASM51伪指令
ASM51宏汇编本文给出了ASM5l宏汇编伪指令的简要说明及SUPER系列仿真器调试ASM51程序时有关的汇编控制项,目的是使用户快速地掌握宏汇编语言ASM51的一般方法,更复杂的用法请参阅有关汇编语言的手册。
1.1 ASM51基本成份·字符集:ASCII字符集·数字:二进制数,后缀为B八进制数,后缀为O或Q十进制数,后缀为D或无后缀十六进制数,后缀为H·符号:第一字符必须是字母‘?’或‘—’,最多31个字符·定位计数器:用$表示当前定位计数器的值·字符串:字符串必须是用单引号(’)括起来的可打印的ASCII字符序列串长度控制在0—255之内,字符串可用DB伪指令初始化。
1.2表达式和基本操作数1.2.1表达式表达式用于定义常数,表达式有三种属性:1.类型——表达式所属段的类型。
2.可重定位性——表达式分为绝对的表达式和可重定位的表达式。
绝对的表达式的值在汇编期间计算,而可重定位的表达式的值在连接定位期间计算。
绝对的表达式可出现在程序的任意位置。
唯一合法的可重定位表达式是一个可重定位的符号或一个可重定位的符号加上一个常数。
3.值——表达式的值以十六位二进制的补码形式表示。
表示式值或在汇编期间计算或在连接定位期间计算。
·1.2.2基本操作数ASM51有以下五种基本操作数:1.符号——符号用来表示地址和常数2.数字——数字可用二、八、十或十六进制表示3.$——表示定位计数器的当前值4.STACK——预定义的变量STACK表示栈底5.串——只有一或二个字符的串可用作操作数,一个字符的串被认为是值等于其ASCII码的字节常数,二个字符的串被认为是字常数。
1.2.3地址空间8051的地址空间有五种:·可被直接寻址的数据地址空间(DATA)·位地址空间(BIT)·外部的数据地址空间(XDA TA)·程序地址空间(CODE)·可间接寻址的数据空间(1DATA)在某些情况下,同一个数值对全部五种地址空间都是有效的地址。
第3章 MCS-51型单片机指令系统和汇编语言程序设计
4.位操作类指令 12 条
它分为位传送、置位、清零及位逻辑指令。 5.控制转移类指令 22 条
它分为无条件转移、条件转移、比较转移、循环转移及子程序调用和返回指令。
表 3-1 寻址方式与相应的存储器空间
存储器空间 程序存储器 ROM 片内 RAM 低 128 字节、专用寄存器 SFR 和片内 RAM 可位寻址的单元 20H~2FH 工作寄存器 R0~R7、A、B、Cy、DPTR、A、B 片内 RAM 低 128 字节(@R0、@R1、SP)、片外 RAM(@R0、@R1、@DPTR) 程序存储器(@A+PC、@A+DPTR) 程序存储器 256 字节范围(PC+偏移量) 片内 RAM 20H~2FH 字节地址中的所有位和 SFR 中字节地址能被 8 整除单元的位
MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data
;A←Rn ;A←(direct) ;A←(Ri) ;A←data
【例 3-1】 指出下列各条指令的含义。 (1) MOV A,R0 ;将寄存器 R0 中的数据传送至 A 中,即完成 A←R0。R0 中的 ;内容不变 (2) MOV A,30H ;将直接地址 30H 单元中的数据传送至 A 中,即完成 A←(30H) ;若(30H)=37H,则执行指令 MOV A,30H 后,A=37H (3) MOV A,@R1 ;将 R1 中的数据作为地址,将这个地址中的数据送至累加器 A 中 ;若 R1=30H,(30H)=18H,则执行指令 MOV A,@R1 后,A=18H (4) MOV A,#40H ;将立即数 40H 送至累加器 A 中,即执行该指令后,A=40H (2) 以 Rn 为目的字节的传送指令(3 条)。
宏汇编MASM系统
1.1、宏汇编MASM系统在宏汇编MASM系统中,程序员可用二种方法来处理源程序:命令行和集成环境。
1.1.1 命令行命令1、编写源程序可用计算机系统中各种能编辑文本文件的编辑器来编辑汇编源程序。
常用的编辑器有:EDIT、Q、Word、记事本和写字板等。
源文件的后缀为:ASM。
2、汇编程序当源程序编写好后,可用MASM命令来汇编该源程序。
如果源程序没有语法错误,那么,将生成目标文件(OBJ文件),为最终生成可执行文件作准备,但如果源程序有错误,汇编程序将显示出错误位置和原因,也可用列表文件(LST文件)来查看出错位置和原因。
下面给出一些使用该命令的实例情况。
例1.1 查看MASM命令的功能。
(其中:用户输入的命令用下划线,系统显示的内容没有下划线。
以下与此相同)…>masm /?usage: masm/optionssource(.asm),[out(.obj)],[list(.lst)],[cref(.crf)][;]……常用的选项有:/Zi和/Zd,因为它们与符号跟踪有关。
例1.2 用MASM命令汇编源程序…>masm testMicrosoft (R) MASM Compatibility DriverCopyright (C) Microsoft Corp 1993. All rights reserved. Invoking: ML.EXE /I. /Zm /c test.asmMicrosoft (R) Macro Assembler Version 6.11Copyright (C) Microsoft Corp 1981-1993. All rights reserved. Assembling: test.asm如果MASM命令显示了类似如上的处理结果,那么,表示源文件TEST.ASM已成功汇编,并已生成了其目标文件TEST.OBJ。
例1.3 用MASM命令汇编源程序…>masm test……Assembling: test.asmtest.asm(10): error A2070: invalid instruction operands 如果MASM命令显示了类似如上的处理结果,那么,表示源文件有错,没有生成其目标文件。
汇编编译工具MASM的使用
实验二汇编编译工具MASM的使用2.1. 实验目的1、学习如何安装MASM;2、学习如何使用和使用编译和链接汇编语言程序。
2.2. 基础知识2、DOS汇编与WIN32汇编在DOS下编写汇编程序,程序员可以管理系统的所有资源,访问和改动系统中所有的内存,修改内存控制块,修改中断向量表截获中断,直接对I/O端口进行读写。
DOS是个单任务操作系统,只有一个运行级别,任何进程和DOS操作系统都是同等级别的。
因此,DOS系统中各个进程会互相影响,如果某个进程死机的话,整个系统都会垮掉。
DOS工作在实模式下,程序员可以寻址1M的内存,通过段寄存器来指定段的初始地址,每个段的大小为64K。
超过1M的部分,就只能把他作为XMS使用。
1M以上的内存空间只能用作数据存放而无法在其中执行程序。
Win32是指32位的Windows操作系统,进程有多种运行级别,操作系统工作在最高级别——0级,而应用程序工作在3级。
在第三级别,进程无法直接访问I/O端口,无法访问其它进程运行的内存,连向自己的运行代码写入数据都是非法的。
只有对于最高级别的进程,系统才是全开放的。
Windows工作在保护模式下,所有的资源对进程来说都是被“保护”的。
在内存方面,Windows使用了处理器的分页机制,程序员不必用一个段寄存器去指定段的地址,因为在保护模式下,段寄存器的含义是不同的(参见80386手册方面的书籍)。
程序员可以直接指定一个32位的地址来寻址4GB的内存。
在程序结构方面,Windows程序也有很大的不同,它是“基于消息”的。
在上面列举的汇编工具中,一些是DOS汇编工具,一些是Win32汇编工具。
初学者可以从DOS汇编入手,先掌握汇编编程的思路、基本语法和编程技巧,待入门后再学习Win32汇编。
当然,学习DOS汇编并不一定需要安装和使用DOS操作系统。
程序员可以在Win32环境中安装MASM 6.0或其它16位汇编工具,在命令提示符状态下编译和链接DOS汇编程序。
MCS-51浮点运算子程序库及其使用说明
MOV ACC.7,C
MOV R5,A ;存放在R5中
INC R1
MOV A,@R1 ;将尾数高字节存放在R6中
MOV R6,A
INC R1
MOV A,@R1 ;将尾数低字节存放在R7中
MOV R7,A
DEC R1 ;恢复数据指针
MOV R3,A
INC R0
MOV A,@R0 ;将尾数低字节存放在R4中
MOV R4,A
DEC R0 ;恢复数据指针
DEC R0
RET
MVR1: MOV A,@R1 ;将[R1]传送到第二工作区中的子程序
MOV C,ACC.7 ;将数符保存在位1EH中
MOV 1EH,C
MOV R0,#36H ;指向BCD码浮点操作数c
LCALL BTOF ;将其转换成二进制浮点操作数
MOV R0,#33H ;指向BCD码浮点操作数b
LCALL BTOF ;将其转换成二进制浮点操作数
MOV R0,#30H ;指向BCD码浮点操作数a
5.工作区:数据工作区固定在A、B、R2~R7,数符或标志工作区固定在PSW和23H单
元(位1CH~1FH)。在浮点系统中,R2、R3、R4和位1FH为第一工作区,R5、R6、R7和位1EH
为第二工作区。用户只要不在工作区中存放无关的或非消耗性的信息,程序就具有较好的
透明性。
6.子程序调用范例:由于本程序库特别注意了各子程序接口的相容性,很容易采用
MCS-51浮点运算子程序库及其使用说明.txt爱情是艺术,结婚是技术,离婚是算术。这年头女孩们都在争做小“腰”精,谁还稀罕小“腹”婆呀?高职不如高薪,高薪不如高寿,高寿不如高兴。MCS-51浮点运算子程序库及其使用说明
ASM-51 宏汇编使用手册
ASM-51 宏汇编使用手册强烈推荐使用配套光盘中的MedWin或Keil开发环境进行编程!其中的A51与这里的ASM51基本相同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等)。
其格式为:[标号:] [指令助记符] [操作数] [;注释]其中方括号[ ]中为选择项。
下同。
51汇编操作手册
行的实际机器指令码。
目标代码文件格式如下:
:cc aaaa tt dd aa dd ss <CR>
计数器 记录地址 数据类型 记录地址 代码的字节 和校验 回车
移量),或者为伪指令中的变量输初值。
为便于程序设计,常量有多种表示形式:二、十、十六进制数和字符串等,它们的格式各不相同,并采用不同的基数标记加以区分。表-
1列出其格式。
表-1
数据形式 格 式 取值范围 示 例 备
注
2进制 ********B 0,1 10110011B
10进制 ****** 0,1,2...9 32768 缺省基数标记
这一类语句即通常所说的伪指令,它指示汇编程序后面的指示性语句如何产生代码。
ASM-51宏汇编完全支持Inter助记符的汇编语言,因此汇编程序的格式,指令完全与8051汇编语言一样,这里不再介绍它们的指令系统。
1、4 常量与数值运算
(1) 常量及其表示
常量,就是在汇编时已经确定的值。 在汇编语言中,常量主要用作指令性语句中的直接操作数 , 也可用于存储器操作的组成部分(如位
综合运算规则 2: 当两个操作数之间没有参数相隔时, 第二个操作符优先于第一个操作符计算。
例如: R1 SET NOT 10011010B
其结果应为 65H。
1、5 程序分段
8051系列的处理器的结构, 把内存分成五个独立的内存段, 即代码段(段名CSEG),数据段(段名DSEG), 外部段(段名XSEG),功能段
EQU 为常量,符号名等定义符号化常量名 符号名不能重名定义
= 为常量,符号名等定义符号化常量名 符号名不能重名定义
ASM宏汇编使用指导手册
ASM-51宏汇编使用手册ASM-51宏汇編主要川來开发Inter8051系列单片机.它具有宏处理.数据处理•列液处理和条件处理等多种功能。
源程序的编写完全采用Inte「标准助记符和行恪式。
在編写程用过程中.吋借助于文本编辑(Windows的记泉本)或文字处理软件Word等編休经ASM-51汇編后生成列表输出文件(丄ST)和目标代码文件(・HEX)。
此目标代码文件(.HEX)町H接用CZS ・51或MedWin. Keil、Debug8051进行模拟/调试,或宜接用于硬件仿真器上运行•当然.这也是要烧写到单片机ROM中的代码。
1、宏汇編语肓的基本i吾法1、1宏汇編的特点ASM-51宏汇編完全支持Inte「助记符的汇編语育•它含有宏语句.英文人小写字母・变册名.标号等不受限!有二十.十六进制和弗参数类型.有汇編控制播令和多层条件语句.程用逻轲分段.还冇模块化程序设汁的连接功能.汇編速度抉等特点。
r2汇编处理过程(1)用行编辑EDLIN或文字处理软件WS或全屏毎編辑软件PE等.編辑宏江編语言谏程序.它的文件扩展名为。
ASM.(2)用ASM-51宏M褊程序对上述漁程序文件进行汇編.产生扩展名为丄ST的列表输出文件和扩展划为.HEX的目标代码文件(.HEX).列茨输出文件包含淞程序语句所汇編成的代码•以及有关的地址.语句和符号表等.目标代码文件包含源祝序语句所汇编成的代码.不包含任何符号信恩或助记符。
进行模拟/调试.或宜接用于硕件仿真器上运行。
1、3语句汇編语肓可分为两类语句:捋令性语句和描示性语句.(1)描令性语句这一类语句是抬在汇编过程中能生成揣令代码的语句(如MOV • DEC等).其恪式为:[标号:][摇令助记符][操作数][•注释]其中方括号[]中为选择项.卜同。
(2)抬示性语句这一类语句即通帘所说的伪折令•它揣示汇編程序后面的播示性语句如何产生代码.ASM-51宏汇編完全支持Inte「助记符的汇編语乳因此汇編程序的格式.抬令完全号8051订编语肓一样.这屮不再介绍它们的揣令系统。
ASM-51宏汇编使用手册.
ASM-51宏汇编使用手册ASM-51宏汇编使用手册ASM-51 宏汇编主要用来开发Inter8051系列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 10011100B10进制 ****** 0,1,2...9 45723 缺省基数标记16进制 ****H 0,1...E,F 0CDE3H 最前面一个字符应是0--9ASCII '**' ASCII 'AD' 只有DB命令中使用常量以数值形式直接写在汇编语言的语句中称为字面常量,若预先为它定义一个符号名,然后在语句中用符号名来表示该常量称符号常量。
【精品】Masm软件使用教程及上机实验问题
上机实验问题
• 调试中NV UP EI PL NZ NA PO NC代表什么意思? 标志位的符号
溢出标志OF(Over flow flag) 方向标志DF(Direction flag) 中断标志IF(Interrupt flag) 符号标志SF(Sign flag) 零标志ZF(Zero flag) 辅助标志AF(Auxiliary carry flag) 奇偶标志PF(Parity flag) 进位标志CF(Carry flag) OV(1) DN(1) EI(1) NG(1) ZR(1) AC(1) PE(1) CY(1) NV(0) UP(0) DI(0) PL(0) NZ(0) NA(0) PO(0) NC(0)
修改程序语法错误
提示: 汇编程序的语法错误信息的形式: 文件名 行号 错误编号 错误内容 ↓ ↓ ↓ ↓ E:\汇编程序\helloworld.asm(9):Error A2008:Syntax error:CODES 小技巧: 一条语句错误可能会产生若干条错误信息,该例就是因为第9行SEGMENT多输入 一个S,导致很多错误,只要在第9行SEGMENTS改为SEGMENT即可调试通过。 特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试 程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很 多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。
运行程序
点击“工具栏”中的“运行”按钮,即可出现程序的运行结果。程序的 运行结果的下面的“Press any key to exit”表示按任意键退出DOS窗口。
修改程序语法错误
当运行程序发生语法错误时,Masm for Windows集成实验环境会自动定位源程序 中错误所在行的位置并高亮显示该行,修改好第一条发生错误行后,双击任一条 错误信息,该软件定位源程序中与之相对应错误所在行的位置并高亮显示该行, 以便改正错误。
实验一 如何用MASM5
实验一如何用MASM5.010影像2班严佳一、实验目的1、熟悉MASM5.0宏汇编程序运行环境2、掌握用MASM5.0运行汇编语言程序的步骤3、学习及掌握的debug程序的各种命令并调试汇编语言程序。
二、实验设备条件计算机、masm汇编语言运行环境三、实验内容运行调试HELLO四、实验步骤1.编辑在E:\masm5.0目录下写好hello.asm文件。
(1)新建txt文本,在文本中输入下面的汇编语言,输入完成后保存“hello.txt”。
DA TA SEGMENTBUF DB 'HELLO WORLD! THIS IS MY FIRST ASM FILE! $'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AXLEA DX,BUFMOV AH,09INT 21HMOV AH,4CHINT 21HCODE ENDSEND START(2)将文本属性修改为asm 。
2. 进入masm5.0所在路径。
Winkey+R 打开程序运行cmd 打开masm汇编语言运行环境e: 打开E盘cd masm5.0 打开masm5.0文件夹3、汇编格式:masm asm源文件及路径1 obj文件目标路径2(省去则默认当前路径)如:E:\masm5.0> masm hello.asm由图中可以看出:0 个警告错误0个严格错误(如果有严格错误,汇编不能通过,必须返回编辑状态更改程序。
)结果:程序无错则在E:\masm5.0中增加文件HELLO.OBJ4、连接格式:link obj文件路径1如:E:\masm5.0> LINK HELLO.OBJ结果:程序无错则在E:\masm5.0中增加文件HELLO.EXE5、运行格式:exe文件全名(即"HELLO.EXE")如:E:\masm5.0> HELLO.EXE6、调试-u 反汇编-r 显示寄存器内容-g [=address1][address2][address3] 执行到断点行,如:-g 5 为执行到第5行-t [=address][value] 跟踪,配合-g使用-d 查看数据-q 退出返回操作系统五.实验心得1.修改文件属性(1)先打开“工具”中的“文件夹选项”(2)把“查看”中的“隐藏已知文件类型的扩展名”的小勾取消(3)更改扩展名,修改属性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宏汇编软件的使用宏汇编软件MASM51的使用
第一节概述
单片机开发可以用手工汇编和机器汇编两种方法。
采用手工汇编就是先编写出汇编程序,然后对照单片机汇编表手工将汇编程序翻译成机器码,最后将机器码一个一个地送入开发仿真器的RAM中去进行调试。
由于采用手工汇编的机器码是相对于存储器的绝对地址进行定位的,因此在调试时,若要在程序中增加或删除一条指令,就会造成指令的绝对地址发生变化。
这样除修改那条指令外,几乎所有转移、调用指令的操作数都要作相应的修改,稍有疏忽程序就会出错。
而采用机器汇编,在很大程度上可以避免上述麻烦。
只要通过键盘输入源程序后,其余作工作都由计算机来进行,即查出相应的机器码,对地址进行定位,建立能被开发装置接收的机器码文件、建立能打印出清单的列表文件等等。
机器码不需要再一个一个地从仿真器的键盘上键入,只要从PC机的通讯口直接传送到开发装置中去。
因此使用机器汇编大大提高了单片机开发的速度。
源程序被输入到机器中后,以一个文件的形式保存起来,然后就可以对这个文件进行处理了,要对这个文件进行汇编,必须有相应的汇编程序。
在PC机上进行汇编的程序有多种,以下介绍的MASM51软件就是其中的一种,它的主要特点有:
1.对用户编写的源程序格式要求不太严格,例如,英文字母的大、小写不受限制,变量名或标号名没有长度限制,对源程序中的空格数也没有严格的要求等等。
这些给用户编写程序带来很大的方便。
2.具有较强的功能,例如支持宏语句,使同一程序中类似的程序结构,只要输入一次,在使用时可用宏语句调用。
此外还允许用条件汇编语句以及完善的伪指令系统等。
减少了编写、输入源程序的工作量。
3.不管用户的源程序有多少错误,它都能全部汇编完,并能形成列表文件及目标文件,以供用户修改错误。
4.可以接收汉字注释,并能完整的将汉字注释复制到列表文件,而其它一些汇编软件则不能处理汉字,或会使列表文件中的汉字注释混乱。
运行MASM51软件的条件很低,现在的PC机都能达到。
第二节如何启动MASM51宏汇编程序
一、启动和退出
MASM51软件有两个文件:MASM51.EXE和MASM51.OVL,只要将这两个文件拷入硬盘的一个目录中(如MASM51)中,然后在DOS命令行中打入:
MASM51(回车)
即在显示器上显示如下信息:
The Cybernetic Micro Systems
CYS-8051 Software Package
Version 3.03`
for the IBM Personal Computer
(C)Copy right Cybrenetic MIcro Systems,Inc 1983,1984,1985, 1986
High Level Language Commands
ASM51[file] P8751 file P8744 file//
P27XX file COMP[file] READ[kbytes] DISP[start,num]
INITIALIZE CLEAR LIST EXIT
RUN[file] GOTO Label STOP CONT
DIR[spec] TYPE file DOS cmd HELP
PRINT arglist EQU = WARBLE
DELAY[secs] CLS HLSEARCH flag BEEP
OFFSET pc[,loc] PROM type SECURE SA VE file[,start,num]
LOAD file EDBYTE pc PVOLT value PSETUP num,value
>
信息的出现说明已进入MASM51宏汇编程序,在屏幕下方出现的符号‘〉’是宏汇编程序提示符,它的出现告诉用户,宏汇编程序处于接收命令状态。
虽然屏幕上提供了很多的命令,但大部份命令要在相应的硬件配合下才能实现。
当用来汇编源程序时,使用的主要命令是:
ASM51 盘号:文件名〈回车〉进行汇编
DIR 盘号:文件名〈回车〉显示目录
EXIT 〈回车〉退出宏汇编
二、进行汇编
用户在使用宏汇编程序之前,应该已使用编缉器(如EDIT、CCED等)编好了8051汇编语言的源程序,并已作为一个文件存盘,该文件一般以.ASM为扩展名。
进入MASM51后,键入
ASM51 [d:filename[.asm] [选项]
如果省略扩展名,则系统默认为.asm,如果不以.asm为扩展名,则应键入文件的全名。
汇编后,将产生两个输出文件:一个是16进制代码文件,以.hex为扩展名,另一个是列表文件,以.lst为扩展名,文件名与输入文件的文件名相同。
在汇编时,可以加入一些选项进行控制,可加的选项如下:
1./L选项:只在屏幕上显示列表文件的内容,不生成列表文件。
2./H选项:汇编后不在磁盘上产生.hex文件。
3./S选项:产生的列表文件中将不包括符号表。
4./P选项:汇编程序序所生成的符号表将成为能被其他源程序引用的永久符号表的一部份,即如果不退出宏汇编,该符号表将保留在内存中,在汇编其它源程序时可以引用它们,以便连接几个源文件。
5./N选项:使生成的列表文件在打印(或显示)时不分页。
不加'/N'则每隔55行源代码生成一个新页头。
一般情况下,我们不需要在命令后面加任何选项。
如下面所示:
ASM51 Filename[.asm] [回车]即可。