嵌入式系统设计师之嵌入式程序设计语言

一、编译器和解释器的基础知识(II)

1、编译器

        编译阶段要做的工作是用交叉编译或汇编工具处理源代码,产生目标文件。

         一般来说,优秀的嵌入式 C 编译器所生成的代码,其长度和执行 时间仅比用汇编语言编写的代码长5%~20%。

        GNU    C/C++(gcc)  是目前比较常用的一种交叉编译器,它支持非常多的宿主机/目标机组合。宿主机可以是Unix AIX Solaris Windows Linux    等操作系统,  目标机可以是 x86 Power  PC MIPS SPARC Motorola  68K 等各种类型的处理器。

        gcc 识别的文件类型主要包括: C 语言文件、C++ 语言文件、预处理后的C 文件、预处理后的 C++文件、汇编语言文件、目标文件、静态链接库、动态链接库等。以C 程序为例, gcc 的编译过程主要分为4个阶段:

        (1)预处理阶段,即完成宏定义和 include 文件展开等工作;

        (2)根据编译参数进行不同程度的优化,编译成汇编代码;

        (3)用汇编器把上一阶段生成的汇编码进一步生成目标代码;

        (4)用连接器把上一阶段生成的目标代码、其他一些相关的系统目标代码以及系统的库函数连接起来,生成最终的可执行代码。

        

二、汇编语言

1、指令语句

        指令语句又称为机器指令语句,将其汇编后能产生相应的机器代码,这些代码能被CPU直接识别并执行相应的操作。例如,表示传数据、相加、相减和与运算的 MOVADD SUB  AND 等,书写指令语句时必须遵循指令的格式要求。        

        指令语句可分为传送指令、算术运算指令、逻辑运算指令、移位指令、转移指令和

处理器控制指令等。

2、伪指令语句 

        伪指令语句指示汇编程序在对源程序进行汇编时完成某些工作。例如,给变量分配存储单元地址,给某个符号赋一个值等。伪指令语句与指令语句的区别是:伪指令 语句经汇编后不产生机器代码,而指令语句经汇编后要产生相应的机器代码。另外, 伪指令语句所指示的操作是在源程序被汇编时完成的,而指令语句的操作必须在程序运行时完成。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森旺电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值