"ASM51无参数化调用C51函数的实现"
该文章主要介绍了如何使用汇编模块对C51模块进行无参数化调用,从而避免了传统汇编模块和C51模块之间调用时的繁琐接口编程问题,并验证了该方法的优越性和有效性。
知识点1:MCS-51系列单片机的特点
* MCS-51系列单片机是目前和今后的主流机种
* 程序员需要对单片机的内部结构有清楚的了解,并尽可能地统筹安排这些资源
* MCS-51内部的资源配置情况:可用的RAM不到256字节,5个固定地址的有限中断源,4个8位并口中实际可作I/O口的只有P1口
知识点2:C51语言的特点
* C51语言是一种通用的高级结构化的程序设计语言
* 入门容易,程序可读性强,调试、移植都很方便
* Possesses a significant advantage in numerical computation processing
知识点3:ASM51汇编语言和C51语言的混合编程
* 一般的做法都是利用C51上手容易、便于理解的优势来编写主程序,在C51语言不便处理或者效率比较低时调用汇编函数
* ASM51汇编语言可以对I/O接口、中断向量及程序空间分配进行统筹安排
* C51语言可以充分利用高效的编程能力来处理数据处理、通信等程序模块
知识点4:无参数化调用C51函数的实现原理
* 无参数化调用是指让C51子函数不带任何参数,从而避免调用参数的传递和返回值的安排等繁琐易出错的问题
* 使用<absacc.h>头文件可以解决外部参数值及其返回值的问题
* 通过加入<absacc.h>头文件,程序员可以对8051系列单片机的存储器进行绝对地址的访问,把对参数值和返回值的操作转化为对存储器绝对地址的操作
知识点5:实现无参数化调用C51函数的步骤
* 在C51函数中定义好传递参数和返回值所需要的各个绝对地址
* 在其它汇编模块中将C51函数中将要使用的参数值放入这些绝对地址中
* 把被调用C51模块将输出的计算值也放入类似的绝对地址中
* 当C51函数中需要使用某个参数值时,就直接从相应的绝对地址中读取该值