问题 问答题


阅读以下说明和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系统部分指令及寄存器说明。
表6-22 x86系统部分指令及寄存器说明表

指令功能寄存器功能
MOV传送字或字节段寄存器CS代码段寄存器
LEA地址传送DS数据段寄存器
ADD加法指令SS堆栈段寄存器
SUB减法指令ES附加段寄存器
PUSH进栈操作AX累加器
POP出栈操作数据寄存器BX基址寄存器
SAL算术左移CX计数寄存器
CALL子程序调用DX数据寄存器
DEC减1指令专用寄存器BP基数指针寄存器
JMP无条件转移指令SP堆栈指针寄存器
JZ/JNZ结果为0/不为0时转移SI源变址寄存器
JL/JG结果小于/大于转移DI目的变址寄存器
JC/JNC有进(借)位/无进(借)位时转移
INT软中断
RET返回主程序
IRET从中断服务程序返回
采用逻辑尺控制法实现以上要求的汇编程序如下:
【汇编程序代码】
N EQU (1)
RULEEQU (2)
CODESEGMENT
ASSUME CS:CODE
START: MOV AX,RULE
MOV CL,N
LOP: SAL AX,1
JC (3)
Collect: CALL Collect_task ;执行Collect_task程序段
JMP (4)
Calculate:CALL Calculate_task ;执行Calculate_task程序段
NEXT: (5)
JNZ (6)
MOV AH,4CH ;功能号送入AH寄存器
INT (7) ;结束程序运行,中断返回
(8)
END START

【问题2】
汇编程序是一种系统软件,它的基本功能是将汇编语言源程序翻译成(1)。对于一个 N行汇编语言代码的源程序,由于汇编指令中形成操作数地址的部分可能出现后面才会定义的符号,因此汇编程序一般至少需要(2)次扫描程序才能完成翻译过程。

答案

参考答案:

解析:(1)机器语言程序(2)两次 这是一道要求读者掌握汇编程序基本功能及其执行过程的常识题。本题所涉及的知识点如下: ①汇编程序是一种系统软件,它的基本功能是将汇编语言源程序翻译成机器语言程序。 ②对于一个N行汇编语言代码的源程序,由于汇编指令中形成操作数地址的部分可能出现后面才会定义的符号,因此汇编程序一般至少需要两次扫描程序才能完成翻译过程。 ③其中,第1次扫描的主要工作是通过固定的机器指令表MOT1定义符号的值并创建一个符号表ST,其中,ST记录了汇编时所遇到的符号的值。 ④第2次扫描的任务是使用机器指令表MOT2产生目标程序。

多项选择题 A3/A4型题
多项选择题