2011年软考嵌入式系统设计师考试学习笔记(2)

来源:微学教育网发布时间:2011-06-21

嵌入式程序设计语言

  1、程序设计语言概述

  ⑴机器语言:是与计算机硬件关系最为密切的计算机语言,在计算机硬件上执行的就是一条条用机器语言来编写的指令;

  汇编语言:基本思路是用符号的形式来代替二进行的指令。

  低级语言:通常将机器语言和汇编语言统称为低级语言。

  ⑵语言处理程序

  语言处理程序:担任翻译任务的程序称为语言处理程序。包括:汇编程序、解释程序、编译程序。

  源程序:用汇编语言或某程高级语言编写的程序。源程序不能直接在计算机上运行。

  解释程序:也称解释器,它直接解释执行源程序、或将源程序翻译成某种中间表示形式后再执行。

  编译程序:是将源程序翻译成目标语言程序,然后在计算机上运行。

  区别:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行;而在解释方式下,解释程序和源程序要参与程序的运行过程中,运行控制权在解释程序。

  程序设计语言的定义

  ⑶包括:语法、语义、语用、语境。

  2、汇编语言

  ⑴、基本原理:为特定计算机或计算机系统设计的面向机器的符号化程序设计语言。

  包括三类语句:指令语句、伪指令语句、宏指令语句。

  指令语句:又称机器指令语句,将其汇编后能产生相应的机器代码,这些代码能被CPU直接识别并执行相应的操作;

  伪指令语句:指示汇编程序在对源程序进行汇编时完成某些工作。区别:伪指令在汇编后不产生机器代码,而指令语句产生机器代码。常用:定义伪指令 EQU;存储定义伪指令 DCB;汇编控制伪指令 IF、ELSE、ENDIF,WHILE WEND;开始伪指令 ENTRY;结束伪指令 END。

  宏指令:将多次重复使用的程序段定义为宏

  ⑵、ARM汇编语言

  格式:ARM语言以段为单位组织源文件。段是相对独立的、具有特定名称的、不可分割的指令或数序列。段可以分为代码段和数据段,代码段存放执行代码、数据段存放代码运行时用到的数据。一个ARM源程序至少要一个代码段。

  ARM汇编语言程序经过汇编处理后生成一个可执行的映像文件,包括:一个或多处代码段,代码段通常是只读的;0个或多个包含初始值的数据段,通常可读写;0个或多处不含初始值的数据段,可读写;

  3、面向过程的语言

  定义:也叫命令式语言或强制式语言,通过一系列可执行的运算及运算的先后次序来描述计算的过程。

  过程序式语言包括:数据、运算、控制、函数。

  数据成分:是一种程序语言的数据类型。

  数据属性:包括名称、类型、存储类别、作用域、生存周期。

  运算成份:算术运算、关系运算、逻辑运算。

  控制成份:顺序、选择、重复;

  函数:是程序模块的主要成份,它是一段具有独立功能的程序,包括三个概念:函数定义,函数声明、函数调用。

  一次函数调用的步骤:⑴、在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参变量和局部变量;⑵、把实参变量的值复制到相应的形参变量中;⑶、控制流转移到该函数的起始位置;⑷、该函数开始执行;⑸、当这个函数执行完成后,控制流和返回值返回到函数调用点。

  4、面向对象的语言

  面向对象=对象+分类+继承+通过消息的通信

  对象:是基本运行时的实体,包括数据(属性),数据操作的行为,所以一个对象将属性和行为封装成一个整体。由对象名、属性、操作三个部分组成。

  方法:在对象内的操作称为方法;

  消息:对象之间进行通信的一种构造;

  类:定义了一组大体上相似的对象,类是在对象之上的抽象,对象是类的具体化。

  继承:父类和子类之间共享数据和方法的机制。

  多态:不同的对象收到同一消息可以产生完成不同的结果,这一现象称为多态。

  动态绑定:是一个把过程调用和响应调用所需要执行的代码加以结全的过程。

  C++:一种面向对象的语言,支持面向对象,也支持面向过程。

  5、汇编、编译、解译程序的基本原理

  ⑴、汇编程序:是将汇编语言源程序翻译成机器语言程序。

  汇编程序一般至少需要两次扫描源程序才能完成翻译过程:第一次主要工作是定义符号的值并创建一个符号表ST;第二次是扫描的任务产生目标程序。

  ⑵、编译程序:功能是把某些高级语言编写的源程序翻译成与之等价的目标语言程序。

  分成六个阶段:词法分板阶段、语法分板阶段、语议分析阶段、中间代码生成阶段、代码优化阶段、目标代码生成阶段。

  ⑶、解释程序:是另一种语言处理程序,在词法、语法、语议分析方面与编译程序,它直接执行源程序或源程序的内部形式。因此解释程序不产生源程序的目标程序,这是与编译程序的主要区别。