问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用keil软件如何将汇编与C语言结合起来一起编写单片机的程序

发布网友 发布时间:2022-05-01 16:07

我来回答

2个回答

热心网友 时间:2022-06-19 06:40

在混合编程中,最常用也是最实用的方法是在C语言中加入部分汇编语言的代码,分为两种方法。
方法1)在Keil C51的函数中直接插入汇编语句
方法2)按照Keil C51接口规则,编写汇编模块
方法1是利用编译控制命令#pragma asm(用来标识所插入的汇编语句的起始位置) 和 #pragma endasm (用来标识所插入的汇编语句的结束位置) ,这两条命令必须成对出现,并可以多次出现。在Keil C51中不对插入的汇编代码做任何的处理。
方法2编写汇编模块,需对KEIL编译器的编译过程做些了解。Keil编译器的编译过程是首先将项目中的一个个源文件编译为目标代码(obj文件),然在再通过连接器产生为最终可执行的hex文件。
目标代码将其中的代码、数据、常量放在不同的“段”中,保存程序的段称为“代码段”,保存数据的段称为“数据段”,最终目标代码经过Keil的连接器按照“段”的要求转换为程序和数据地址固定的可执行文件。
在Keil软件中,“段”按定位属性分为:“可重定位段”和“绝对段”。
“可重定位段”:程序和数据在其分别所对应的存储单元(FLASH和RAM)中的存储地址是浮动的、可重定义的、相对可变的。
“绝对段”:其地址在连接前就已确定不变,连接器据此为它分配地址。
经Keil编译器生成的“段”具有如下属性:
1)段的存储属性(program code data pdata xdata bdata bit等);
2)段的起始地址;3)段的长度;
4)段的定位要求:绝对段地址固定,可重定位段定位的要求如要求代码段在2K范围内,数据段定位在可位寻址区等;
5)段名:包括程序和数据(变量和常量)的段的存储属性及段所属的程序模块(文件)。代码段: ?PR? funcname?Filename
数据段如:?DT? funcname?Filename; ?BI? funcname?Filename
标准段名前缀列表
段前缀 存储类型 含义
?PR? Program 程序存储区的代码
?CO? code 程序存储区的常量
?BI? Bit 内部数据存储区的可位寻址的位变量
?BA? Bdata 内部数据存储区的可位寻址的字节变量
?DT? Data 内部数据存储区的变量
?ID? Idata 内部数据存储区可间接寻址的变量
?PD? Pdata 外部数据存储区的页变量
?XD? Xdata 外部数据存储区的变量

热心网友 时间:2022-06-19 06:40

你是用的USB编程,还是RS232啊,确定驱动程序安装了吗?驱动安成功后,电脑,设备管理器中能看到串口号!你发的那个提示框,我看不到,也不清楚你说的!有什么问题可以问我! 哦,如果是那样的话,也算是正常情况,一般拔下连接线在重新链接可以了,这种问题当你烧写次数多了的时候,有时候端口会显示被占用,要求重新链接,或者有时候你不小心碰了下数据线也会出现那种情况!
另外,虚机团上产品团购,超级便宜
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天将雄师观后感600字 为什么喝酒会降血糖 牛栏山 52度浓香型白酒-购买最佳价格 全兴大曲 52度浓香型白酒-购买最佳价格 笔记本电脑怎么接音箱电脑如何连接外置音箱 笔记本电脑有音箱插孔吗笔记本电脑如何连接喇叭 冰箱压缩机过热启动5秒就停了 周长相等的正方形和圆,其面积比是多少 周长相等的正方形和圆面积比是多少 周长相等的正方形与圆形,边长与半径的比是( ),面积之比是( )。 要有... 东莞市美馨家政服务有限公司怎么样? 编写汇编程序的keil软件可以用来编写C语言吗 东莞酒店铝塑板外墙清洗,验收时要注意些什么啊? keil写c语言程序 东莞市雅净清洁服务有限公司怎么样? 那位可以告诉我,怎么查看一篇文章的影响因子,最好有步骤。谢谢!!!! 如何使用keil编译一个现有的C程序 东莞外墙清洗招人 怎么用keil4运行c语言程序 本人从事高空外墙清洗,哪里有需要清洗或者要人的,人在东莞。联系电话。13104795708? 顺字的金文字体 顺其自然字体设计创意 顺字 行书 顺有几种字体写法 公积金员工账号对照表 exel是什么格式 住房公积金账号就是公积金账户吗 含茶树油成分的护肤品适合油皮用吗 忘记企业公积金账号和密码,怎么办 注册住房公积金密码总是格式不正确是怎么回事 我想查询住房公积金,我对着本子上的账号输入,他说格式不对,请问一下各位大神,公积金怎么查。 急!!!keil编译c语言程序时先是出现A51 ASSEMBLER停止工作,然后又出现C51/CX51 compiler停止工作 东莞有要高空外墙清洗的老板吗? keil uvision4调用C语言 广州外墙清洗公司 keil怎么编译不了这个c语言 怎样用keil编C语言指针应用程序?用什么单片机型号? 怎么用keil编写键盘控制的c语言程序 广东红战园林保洁服务有限公司怎么样? 如何使用keil调试已经写好的c语言程序 keil 用C语言程序怎么编译不了 Keil编译的hex 如何转成C语言 keil uvision4可以用C语言写吗?就是能编译C吗 白天散步时不小心踩到了狗屎,晚上就梦见很多屎,也不知道是人的还是动物的,这是什么征兆啊?有人懂吗? 白天走路踩到了狗屎,晚上做梦就梦见很多屎,也不知道是人的还是动物的,这是什么征兆啊?有人懂吗? 昨天散步时踩到了狗屎,晚上就梦见很一坨一坨的屎,也不知道是人的还是动物的,有人懂是什么征兆吗? 梦见被动物推到在屎堆意味着啥? 怎么洗袜子才能把袜子的头和尾洗到,而且能洗干净? 智学网成绩均为A,怎么评定 智学网上的等级准吗 我有一壶酒全诗是什么?