使用Keil软件编写汇编源程序应注意事项
1)一定要使用微软的txt文本编辑器,否则键入逗号时编译通不过。应该是这个样('),不该是这个样(,)。
2) 用数字做标号时,前面一定要加一个英文字母,否则编译通不过。
3) 有时编译通过的.asm源文件却不产生.hex文件!原因是keil软件的设置没有勾选“产生hex文件;另一个是存放.hex的文件夹中删除过其他的.hex文件。
4) 用VU2新建文件键入源程序时,先键入程序部分,编译后,再键入注释部分;此外,不能用中文输入法输入分号,最好用大写输入程序部分及注释部分前面的分号,否则注释部分前面的分号显示不正确,编译通不过
5) 输入的标号应成对出现,无论是标号还是标号地址(跳转指令后面和标号相同的字符串)只要单独出现,编译通不过并提示错误!
6) 编写程序要注意它的逻辑性,完整性,否则不会完成预期的功能。
如:要编写一个使单个发光二极管闪烁的程序,首先确定是哪一个发光二极管闪烁;使其闪烁必须满足:亮——延时(保持亮)——暗——延时(保持暗)——再亮这样一个须要2次延时的完整周期,延时时间符合人眼视滞规律,不少于20ms
7) 助记符后面的立即数,如果有2个应该用逗号隔开,语法规定:如果只有一个应舍去逗号,否则语法错误,通不过。
8)每一条指令前面不应有顺序号(按照程序编写的顺序人为编排的顺序号),否则,语法错误,编译通不过。
9) 在程序中各功能块之间不能用连续的’*****’或‘----------’隔开。如想隔开,前面必须加 ‘;’,分号后面再用连续的’*******’或‘-----------’。
10)用复制的方法将.txt文件复制到Keil软件中去,必须把扩展名更改为‘.ASM’ ,然后‘保存’、‘添加文件’三步之后,程序中的指令字体会变成蓝色,注释字体变成绿色这样才能‘编译’,‘建造.HEX文件’,否则提示错误!有时能通过,但不产生.HEX文件。
11)寄存器不能重复使用,如:在主程序中已经使用R0(不光是R0,其他寄存器也是如此), 主程序的其他地方不能再使用;子程序中也不能重复,否则程序运行不正常,但编译能通过。
12) 编写双向单路流水灯时,选择第一个灯亮从P0.0还是P0.7开始,这个选择和流向要一致,否则会出现‘亮灯’从这一端开始,而流向的第一只灯却是另一端的第一只灯。其现象:从这一端开始流向另一端前,‘亮灯’会从开始的这一端直接跳到另一端再跳回来才开始正常流动。编译能通过,’.HEX’文件能产生。
13) 伪指令: 定义字节命令(并赋初值)—— “DB “
说明:告诉汇编程序从指定的地址单元开始,定义若干字节存储单元,并赋初值。用法:标号 DB XXH,XXH,XXH (若干字节存储单元及其初值)。例如: TAB: DB 60H,32H,16H,80H,54H,90H,35H,-------------等等很多。像这样的字符串应在一行内输入完成,如另起一行,编译不通过,提示错误。如果字符串太多太长必须另起一行,则需在另一行的前面再添加一条伪指令‘DB’,后面输入赋值的字符串,只有这样才能编译通过。
14)同样的“跳转指令连同后面标号”在程序中可以出现多次,但跳转到目标处的“标号”必须是唯一的,否则程序会出现混乱。
15) 助记符后面的立即数,十六进制数第一位是字母的情况下前面必须加零‘0’, 是数字时不管他。如:MOV #A2H, A2H前面要加 ‘0’ ,即0A2H。否则编译通不过。
16) 欲使整个主程序循环起来,绝对调转指令‘AJMP’应加入到主程序和延时子程序之间,加到延时子程序之后不起作用。
17) 将编写好的汇编源程序.txt文本文件复制到Kiel软件中,语句后面的分号、注释不呈现绿色这是不正常的,编译不会通过,需要更正,删除分号重新键入分号;按一次Back Space鍵(退格键)删除时会出现乱码,因为Keil对中文支持不好(只要更改的是中文就会出现乱码),只要连续按2次退格键即可删除乱码重新键入分号(或中文)即可,这样分号及注释都会变成绿色。
18) 键入注释必须打开大写鍵鍵入分号,否则(不是绿色)编译通不过。
19) 编译好的.ASM文件复制时,粘贴的目的文件夹必须是关闭的状态,否则粘贴过去的文件中的中文会出现乱码(对中文支持不好的缘故)。
使用Keil软件编写汇编源程序应注意事项的更多相关文章
- 单片机Keil软件仿真与调试技巧
一.引言 单片机软件开发过程中,软件调试遇到的各种问题常令初学者感到不知所措.实际上.各种仿真开发软件的程序调试基本方法和技巧大同小异,掌握正确的程序调试基本技巧.对于排查这些程序错误问题可以起到举一 ...
- STM32 PWM的输出与Keil软件仿真
导读:PWM(Pulse Width Modulation)控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值). PWM控制技术在逆变电路中应用最广,应用 ...
- 用普通IO驱动LCD的控制方法-松瀚汇编源程序
/*************************************** 本例程为IO直接驱动LCD的方法 以下是松瀚MCU汇编源程序 **************************** ...
- 转载:Source Insight查看ARM汇编源程序 && 高亮显示程序 && Source Insight打开project窗口出错
(1)Source Insight查看ARM汇编源程序.做ARM嵌入式开发时,有时得整汇编代码,但在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都 ...
- 基于Keil软件的MCU环境搭建
我们在开发一款新的MCU的时候,偶尔会遇到Keil软件没有对应的Device设备选型,以下,我们以STM32F407VGT6作为实例来演示整个环境的搭建过程: 一.如下所示,我需要选择的是ST公司的S ...
- VisualStudio 编写汇编代码相关设置
VS编写汇编代码方法 新建空项目,不创建解决方案 项目右键,Build Customizations,选择masm 新建源文件,后缀为.ASM 编写代码 .386 ; Tells MASM to us ...
- Keil软件下用Jlink无法识别芯片
Keil软件下用Jlink无法识别芯片 硬件:正点原子探索者 软件:keil J-Link固件版本:V9.40 J-Link V6.94b驱动:下载地址 跟着视频教程走,发现的第一个问题就是这个,记录 ...
- keil or c51 汇编调用c语言函数 容易忽视的问题
最近,在用keil 写一个小程序时,想实践一下从汇编调用 C语言函数,我们都知道C语言调用汇编函数讨论得较多,但反过来,从汇编中调用C语言的函数未见深入分析:在开始的时候,还是忽视了一个问题,就是对现 ...
- 如何在KEIL中编写模块化的C程序
在KEIL中的模块化程序写法在使用KEIL的时候,我们习惯上在一个.c的文件中把自己要写的东西按照自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序比较短的时候比如几十行或者一百多行,是没有什么问 ...
随机推荐
- BZOJ3399: [Usaco2009 Mar]Sand Castle城堡
3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 22 Solved: 17[Sub ...
- 上海游侠电动汽车团队招募。iOS,Android,产品经理以及 SEVER 端工程师 - V2EX
上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师 - V2EX 上海游侠电动汽车团队招募.iOS,Android,产品经理以及 SEVER 端工程师
- <WinForm_1>初识WinForm编程
暑假花了一个多月自学了Win32 SDK编程,不敢说成为了高手,但是还是颇具收获——windows的消息机制(著名的消息循环).一切控件均是窗口…… 曾经有一位网友(和我一个专业的)向我吐槽:Win3 ...
- 最最常用的 100 个 Java 类(转)
大部分的 Java 软件开发都会使用到各种不同的库.近日我们从一万个开源的 Java 项目中进行分析,从中提取出最常用的 Java 类,这些类有来自于 Java 的标准库,也有第三方库.每个类在同一个 ...
- Android Sensor Test
魅蓝note可用 [{Sensor name="MPL Gyroscope", vendor="Invensense", version=1, type=4, ...
- 淘宝内部大量使用的开源系统监控工具--Tsar
Tsar是淘宝开发的一个非常好用的系统监控工具,在淘宝内部大量使用 它不仅可以监控CPU.IO.内存.TCP等系统状态,也可以监控Apache,Nginx/Tengine,Squid等服务器状态 ...
- Zend Framework 留言本实战(转)
一.环境搭建和ZF安装 *[注]本节内容大部分来至Zend Framework官方手册 1.1 Zend Framework下载 Zend Framework 使 ...
- Java调用天气Webservice的小应用
废话不多说,直接贴代码: CityReq.java package com.weather; import javax.xml.bind.annotation.XmlElement; import j ...
- 零基础学习云计算及大数据DBA集群架构师【Linux系统配置及网络配置2015年12月30日周三】
/Mon *************摘要************** 计划任务 )一次性计划任务 服务:atd 命令:at 服务存放文件:/etc/init.d/atd 系统配置文件:/etc/at. ...
- 定时改变App主题的方案
1.将接口返回的图片缓存到本地,由于写data到本地是耗时操作,为了不阻塞主线程,可开启子线程来做此操作 dispatch_queue_t queue = dispatch_queue_create( ...