首页 理论教育 C51与汇编语言实验指导书

C51与汇编语言实验指导书

时间:2023-11-06 理论教育 版权反馈
【摘要】:1)用内嵌汇编法写汇编语句有时,程序要采用汇编语句来设计,C51编译器支持图1-1所示的3种方法来写汇编语句。4)C51本征函数与程序设计单片机指令系统中的一些指令用C语言不容易编写,但这些语句在程序设计时又很有用。表1-3C51常用本征函数本征函数调用例子如下:_nop_函数设计延时程序,每次调用占1个指令周期。图1-3流水灯程序设计中用循环移位本征函数与正常语言设计对比

C51与汇编语言实验指导书

1)用内嵌汇编法写汇编语句

有时,程序要采用汇编语句来设计,C51编译器支持图1-1所示的3种方法来写汇编语句。

图1-1 C程序内嵌汇编书写形式

2)C程序调用汇编程序

C程序调用汇编程序时,会按参数传递规则把输入参数准备好,再去运行汇编程序。调用过程如图1-2所示。

图1-2 C语言调用汇编程序的过程

3)汇编程序编写与调用

用纯汇编语句写的程序也可以调用C语言程序,这里需注意两点:(1)汇编语句一般要按段的方式编写;(2)程序调用时,要先按参数存储规则准备好参数,再调用C语言子程序。

汇编程序的编写规则请大家参考A51编程规则说明,这里就不再论述。(www.xing528.com)

4)C51本征函数与程序设计

单片机指令系统中的一些指令用C语言不容易编写,但这些语句在程序设计时又很有用。这时我们可以用C51提供的本征函数来高效使用这些指令,达到优化程序的目的。调用这些函数时,是把函数对应用指令直接嵌入调用函数中,而不是用ACALL中的各LCALL指令调用。C51提供的本征函数如表1-3所示。

表1-3 C51常用本征函数

本征函数调用例子如下:

(1)_nop_(void)函数设计延时程序,每次调用占1个指令周期。

(2)用移位函数设计程序。

C语言中的“≪”和“≫”能进行移位操作,但新移入的数都是0,也不能实现循环移动。在设计流水灯程序中,用本征函数进行设计会更简单,如图1-3所示。

图1-3 流水灯程序设计中用循环移位本征函数与正常语言设计对比

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈