问答题 阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。 【说明】 在某嵌入式安全监测系统中,对某任务的加工操作需通过数据采集(Collect_task)、计算(Calculate_task)这两个不同的程序段来完成,并且执行程序段Collect_task和Calculate _task的顺序及次数有如下约定: Collect_task(2次)→Calculate_task(1次)→Collect_task(5次)→Calculate_task(4次)→Collect_task(2次)→Calculate_task(2次) 表6-22 所示为x86系统部分指令及寄存器说明。
问答题 请根据试题的要求,将汇编程序代码中(1)~(8)空缺处的内容填写完整。
【正确答案】正确答案:(1)16或等价的二进制数“00010000B” (2)20F3H或等价的二进制数“0010000011110011B” (3)Calculate (4)NEXT (5)DEC CL (6)LOP (7)21H (8)CODE ENDS 这是一道要求读者利用逻辑尺控制法进行循环程序设计的程序分析题。本题的解答思路如下: ①在本案例的循环程序中,循环体又内嵌有多个不同的分支结构。每执行循环体一次,将根据事先规定好的标志位去执行具体的分支程序。试题要求采用逻辑尺控制法实现对于这种结构的循环程序设计。逻辑尺控制法首先应设计一把逻辑“尺”,即用字节、字、双字,甚至根据需要所设置的多字节中的各位表示不同的操作,如果需在循环中执行更多分支,也可采用多位组合。 ②题干中对执行程序段Collect_task和Calculate_task的顺序及次数做了如下约定: Collect_task(2次)→Calculate_task(1次)→Collect_task(5次)→Calculate_task(4次)→Collect_task(2次)→Calculate_task(2次) 由于程序只简单执行两种不同的程序段,因此用一位“0”或“1”来分别标志转向执行两种不同的分支操作。执行程序段Collect_task和Calculate_task共有16次,因此采用一个字(16位)来分别表示这两个程序段的执行顺序和次数。因此(1)空缺处可填人循环的总次数“16”,或者是等价的二进制数“00010000B”。 根据以上分析结果可设计出相应的逻辑尺,如图6-25所示。
【答案解析】
问答题 请根据试题的要求,将汇编程序代码中(1)~(8)空缺处的内容填写完整。
【正确答案】正确答案:(1)机器语言程序 (2)两次 这是一道要求读者掌握汇编程序基本功能及其执行过程的常识题。本题所涉及的知识点如下: ①汇编程序是一种系统软件,它的基本功能是将汇编语言源程序翻译成机器语言程序。 ②对于一个N行汇编语言代码的源程序,由于汇编指令中形成操作数地址的部分可能出现后面才会定义的符号,因此汇编程序一般至少需要两次扫描程序才能完成翻译过程。 ③其中,第1次扫描的主要工作是通过固定的机器指令表MOT1定义符号的值并创建一个符号表ST,其中,ST记录了汇编时所遇到的符号的值。 ④第2次扫描的任务是使用机器指令表MOT2产生目标程序。
【答案解析】
问答题 编译程序的功能是什么?解释程序与编译程序的主要区别是什么?请在150字以内简要说明。
【正确答案】正确答案:编译程序的功能是把某些高级语言编写的源程序翻译成与之等价的目标语言程序 解释程序与编译程序的主要区别是它不产生源程序的目标程序 这是一道要求读者掌握编译程序、解释程序基本功能的常识题。本题所涉及的知识点如下: ①编译程序的功能是把某些高级语言编写的源程序翻译成与之等价的目标语言程序。通常将编译程序的工作过程分为六个阶段,如表6-28所示。每个阶段的操作在逻辑上是紧密相连的,将源程序从一种表示形式一步步转换成目标代码。
【答案解析】