Keil 中 C 语言与汇编语言混合编程需要注意的几个地方 在 Keil 中,C 语言与汇编语言混合编程是一种常见的编程方式,但是需要注意一些细节,以免出现错误或不良结果。本文总结了在 Keil 中 C 语言与汇编语言混合编程需要注意的几个地方。 1. C 语言中加入汇编语言模块的方法 在 Keil 中,可以使用 `#pragma asm` 和 `#pragma endasm` 指令将汇编语言代码嵌入到 C 语言程序中。例如: ```c void func(){ C 语言代码…… #pragma asm MOV R6,#23 DELAY2: MOV R7,#191 DELAY1: DJNZ R7,DELAY1 DJNZ R6,DELAY2 RET #pragma endasm C 语言代码…… } ``` 其中,红色部分为 C 语言代码,绿色部分为嵌入的汇编语言代码。 2. Keil 提示 “asm/endasm” 出错的解决方法 如果直接加入汇编代码,编译将会报错,错误信息如下: ``` compiling sendata.c... sendata.c(81): error C272: 'asm/endasm' requires src-control to be active sendata.c(87): error C272: 'asm/endasm' requires src-control to be active Target not created ``` 解决方法是:右键单击包含有汇编部分的 C 语言文件名,然后在菜单中选择带有红色方框的选项,在弹出的对话框中,将上图中红色方框选中的两项打上勾(默认的情况下,前面的勾是灰色的,要让这两项前的勾变为黑色的),点击确定。 3.?C_START 等相关警告的处理 按照上述方法处理完之后,再编译不会出现错误信息了,但是会出现以下警告信息: ``` linking... * WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: STARTUP.obj (?C_STARTUP) * WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ?C_START MODULE: STARTUP.obj (?C_STARTUP) ADDRESS: 000D ``` 处理方法是:在“Source Group 1”上点右键,在菜单中选择 “Add Files to Group 'Source Group 1' ”,找到 KEIL 安装目录,选择其中的“C51”目录下的“LIB”目录下的“C51S.LIB”文件,点击 Add,然后 Close 即可。 4. 寄存器冲突问题的解决 汇编程序块中常常会使用到 51 的通用寄存器,比如 R0-R7。这种情况下可能会和 C 语言程序中已经使用到的 R0-R7 产生冲突,以至于产生一些非常隐蔽和古怪的错误。解决方法是:在 C 语言程序中,使用 `volatile` 关键字来避免寄存器冲突。 在 Keil 中 C 语言与汇编语言混合编程需要注意一些细节,以免出现错误或不良结果。通过以上方法,可以避免一些常见的错误和问题。































剩余7页未读,继续阅读


- 粉丝: 13
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【Python爬虫】从请求到数据存储全流程指南:涵盖网络请求、HTML解析与数据处理基础教程
- 由百度文心大模型驱动的 AirSim 无人机系统
- Selenium测试版浏览器和驱动
- 基于OpenCV的工业机器视觉软件开发.pdf
- 基于百度文心大模型驱动airsim无人机
- Python在图书情报学的应用与扩散研究.pdf
- 基于ELF文件恢复的Linux内存取证技术研究.caj
- 基于MATLAB地下水溶质运移预测模型的构建.pdf### 文章总结
- 管理系统源码-Python编程-基于SQLite的用户管理系统实现:涵盖CRUD功能的数据库操作入门教程
- 用于调用生成式大语言模型的 API 服务器系统
- 全国小区数据(包含字段:小区名、省份、城市、区域、地址、纬度(百度地图)、经度(百度地图)、纬度(GPS)、经度(GPS)、物业费
- 【大模型 NLP 算法付费干货大礼包】一站式拥有,学习科研工作全无忧!
- SQL Server 2000权威指南:从入门到精通
- 一项基于大模型的App隐私开关探测技术
- python 练习题 ,python 题目
- python 练习题,python 三角形题目


