阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。
[说明]
在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。
设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下:
[汇编程序代码]
DATA SEGMENT
BINTAB DBl8,25,32,46,56,78,… ;第1~100个数据
DB 90,95,99,100,106,126,… ;第101~200个数据
DB 189,195,197,202,206,216,… ;第201~256个数据
COUNT EQU 256
FLAG DW ?
KEY EQU (1)
DATA ENDS
STAK SEGMENT
STPN DB 20 DUP(?)
STAK ENDS
CODE SEGMENT
ASSUME CS,CODE, DS,DATA, ES:DATA, SS:STAK
BINSEAT PROC FAR
START, MOV AX, DATA
MOV DS, AX
MOV ES, AX
LEA SI, BINTAB
MOV CX, COUNT
MOV DX, 1
MOV AX, SI
ADD AX, CX
MOV DI, AX
MOV AL, KEY
LOP0, MOV BX, SI
ADD BX, DI
SHR BX, 1
CMP AL, [BX]
JZ FOUND
PUSHF
(2)
JZ NFOUND
POPF
JL LESS
MOV SI, BX
JMP NEXT
LESS, (3)
NEXT, (4)
JMP LOP0
NFOUND: MOV AX, DX ;未找到,标志全1送DX
FOUND: MOV AX, DX
MOV FLAG, AX
RET
BINSEAT ENDP
CODE ENDS
(5)
请根据试题的要求,将汇编程序代码中(1)~(5)空缺处的内容填写完整。
第1题:
阅读以下说明和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系统部分指令及寄存器说明。
采用逻辑尺控制法实现以上要求的汇编程序如下:
【汇编程序代码】
N EQU (1)
RULE EQU (2)
CODE SEGMENT
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
请根据试题的要求,将汇编程序代码中(1)~(8)空缺处的内容填写完整。
第2题:
阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。
[说明]
某停车场有多个入口和出口,车辆进入时从入口处由系统查询可用的停车位,从出口驶出时系统将其刚使用的车位标记为空车位。
假设实现停车场管理的伪指令如下表1所示:
根据上述描述,在入口处的伪代码程序为:
x=Get();
IF x=NULL THEN return 0;
Writ(x,1);
若两辆车在不同的入口处同时执行上述代码,会出现什么问题? (100字以内描述)
第3题:
第4题:
阅读以下说明,回答问题1至问题4。
[说明]
在Linux操作系统中,TCP/IP网络可通过若干文本文件及命令进行配置。
在Linux操作系统下,可通过命令______获得如图2-1所示的网络配置参数。
A.netconf B.ifconf C.netconfig D.ifconfig
第5题: