理论教育 C语言与汇编语言对比:单片机原理及接口技术

C语言与汇编语言对比:单片机原理及接口技术

时间:2023-11-05 理论教育 版权反馈
【摘要】:使用C语言进行单片机应用系统的开发,则有着汇编语言所不具有的优势:1)不需要了解单片机指令集,也不需要了解其存储器结构。7)C语言在模块化开发、可移植性、代码管理上与汇编语言相比有着明显的优势。为了对比C语言和汇编语言程序设计的不同,先看一个简单的例子。实际上,观察编译器中由上述C语言代码所生成的汇编代码:读者会发现编译器输出的汇编代码与采用汇编语言编写的代码是一致的。

C语言与汇编语言对比:单片机原理及接口技术

长期以来,汇编语言都是作为单片机应用中比较流行的开发工具。汇编语言具有执行效率高、控制性强等优点,但是其可移植性和可读性差,使其产品在维护和功能升级方面有着极大的困难。使用C语言进行单片机应用系统的开发,则有着汇编语言所不具有的优势:

1)不需要了解单片机指令集,也不需要了解其存储器结构。

2)寄存器分配和寻址方式由编译器进行管理,程序员可以不关心这些问题。

3)编程时可以使用其他应用程序设计时的关键字和操作函数。

4)与使用汇编语言编程相比,程序的开发和调试时间大大缩短。

5)可以直接调用C语言中提供的标准函数库中的函数,如数学运算函数等。

6)C语言可移植性好,C语言编译器几乎适用于所有的目标系统。

7)C语言在模块化开发、可移植性、代码管理上与汇编语言相比有着明显的优势。

为了对比C语言和汇编语言程序设计的不同,先看一个简单的例子。(www.daowen.com)

例如:向地址为0BF00H的存储单元存入立即数10。

汇编语言程序:

由上述代码可知,在使用汇编语言访问外部存储器时,必须使用DPTR寄存器作为间接地址指针来寻址,而且还必须使用MOVX指令才能完成对外部地址的访问。

C语言程序:

使用C语言更为方便。程序员不需要知道单片机要求区分片内或者片外存储器,也不需要知道访问片外地址需要使用间接寻址,还不需要知道访问片外存储器地址要使用MOVX指令而不是MOV指令。程序员仅需要知道关键字XBYTE的含义,用一个简单的赋值运算符“=”就可以实现这个功能。

实际上,观察编译器中由上述C语言代码所生成的汇编代码:

读者会发现编译器输出的汇编代码与采用汇编语言编写的代码是一致的。

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

我要反馈