阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。[说明]在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。设有256个字节的数据,已按从小到大的顺序存放在以BINTAB为首地址的数据区单元中,现要求查找其中值为126的数据,用对分查表法查询的汇编程序如下:[汇编程序代码]DATA SEGMENTBINTAB DBl8,25,32,46,56,78,… ;第1~100个数据DB 90,

题目

阅读以下说明和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)空缺处的内容填写完整。


相似考题
更多“阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明 ”相关问题
  • 第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)空缺处的内容填写完整。


    正确答案:(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所示。 图6-25中阴影部分是程序段Collect_task执行的顺序和次数其余是程序段 Calculate task执行的顺序和次数。注意执行“Collect_task(2次)”中第1次执行的 Collect_task任务是放置在逻辑尺的最高位还是放置在逻辑尺的最低位由程序段中算术左移操作语句“SAL AX1”决定。将图6-25所示的逻辑尺的参数定义转换成等价的十六进制数0010 0000 1111 0011B=20F3H。因此(2)空缺处可填入“20F3H”或者是等价的二进制数“0010000011110011B”。 ③程序中已给出代码(CODE)段定义伪指令“CODE SEGMENT”由于段定义伪指令的格式是: 段名>SEGMENT[定位方式][连接方式工类别名] 段名>ENDS 因此在模块结束伪指令“END START”之前需安排一条“CODE ENDS”即(8)空缺处需填入CODE段定义结束伪指令一“CODE ENDS”。 ④由于程序段中已给出“功能号送入AH寄存器”及“中断返回”等关键信息由此可判断(7)空缺处需填入某一个中断类型码。由于软中断类型码通常取20H~27H其中系统功能调用的通用格式是: 功能号送入AH寄存器 INT 21H 语句“MOV AH4CH”中“4CH”就是相应的功能号因此(7)空缺处需填入“21H”。 ⑤结合逻辑尺控制算法的设计思想和试题中给出的指令及寄存器说明表仔细分析试题的程序段先填写(3)、(4)、(6)空缺处的标号内容最后完成(5)空缺处循环计数减1操作(DEC CL)的推理。以下给出该程序段的每条语句的详细解析。 N EQU 14 ;定义循环的总次数 RULE EQU 183CH ;定义逻辑尺 CODE SEGMENT ;CODE段定义伪指令 ASSUME CS:CODE ;段寄存器说明伪指令 START: MOV AXRULE ;AX←逻辑尺标志 MOV CLN ;CL←循环的总次数 LOP: SAL AX1 ;算术左移操作CF←逻辑尺最高位 JC Calculate ;当CF=1时转至Calculate标号处 Collect: CALL Collect_task ;当CF=0时执行Collect_task程序段 JMP NEXT ;无条件转至NEXT标号处 Calculate:CALL Calculate_task ;执行Calculate_task程序段 NEXT: DEC CL ;循环计数CL←CL—1 JNZ LOP ;若CL≠0转至LOP标号处继续循环 MOV AH4CH ;若CL=0结束程序运行返回 INT 21H ;系统功能调用 CODE ENDS ;CODE段定义结束伪指令 END START ;模块结束伪指令
    (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所示。 图6-25中,阴影部分是程序段Collect_task执行的顺序和次数,其余是程序段 Calculate task执行的顺序和次数。注意,执行“Collect_task(2次)”中第1次执行的 Collect_task任务是放置在逻辑尺的最高位,还是放置在逻辑尺的最低位,由程序段中算术左移操作语句“SAL AX,1”决定。将图6-25所示的逻辑尺的参数定义转换成等价的十六进制数,0010 0000 1111 0011B=20F3H。因此(2)空缺处可填入“20F3H”,或者是等价的二进制数“0010000011110011B”。 ③程序中已给出代码(CODE)段定义伪指令“CODE SEGMENT”,由于段定义伪指令的格式是: 段名>SEGMENT[定位方式][连接方式工,类别名,] 段名>ENDS 因此在模块结束伪指令“END START”之前需安排一条“CODE ENDS”,即(8)空缺处需填入CODE段定义结束伪指令一“CODE ENDS”。 ④由于程序段中已给出“功能号送入AH寄存器”及“中断返回”等关键信息,由此可判断(7)空缺处需填入某一个中断类型码。由于软中断类型码通常取20H~27H,其中系统功能调用的通用格式是: 功能号送入AH寄存器 INT 21H 语句“MOV AH,4CH”中“4CH”就是相应的功能号,因此(7)空缺处需填入“21H”。 ⑤结合逻辑尺控制算法的设计思想和试题中给出的指令及寄存器说明表,仔细分析试题的程序段,先填写(3)、(4)、(6)空缺处的标号内容,最后完成(5)空缺处循环计数减1操作(DEC CL)的推理。以下给出该程序段的每条语句的详细解析。 N EQU 14 ;定义循环的总次数 RULE EQU 183CH ;定义逻辑尺 CODE SEGMENT ;CODE段定义伪指令 ASSUME CS:CODE ;段寄存器说明伪指令 START: MOV AX,RULE ;AX←逻辑尺标志 MOV CL,N ;CL←循环的总次数 LOP: SAL AX,1 ;算术左移操作,CF←逻辑尺最高位 JC Calculate ;当CF=1时,转至Calculate标号处 Collect: CALL Collect_task ;当CF=0时,执行Collect_task程序段 JMP NEXT ;无条件转至NEXT标号处 Calculate:CALL Calculate_task ;执行Calculate_task程序段 NEXT: DEC CL ;循环计数,CL←CL—1 JNZ LOP ;若CL≠0,转至LOP标号处,继续循环 MOV AH,4CH ;若CL=0,结束程序运行,返回 INT 21H ;系统功能调用 CODE ENDS ;CODE段定义结束伪指令 END START ;模块结束伪指令

  • 第2题:

    阅读下列说明,回答问题1至问题3,将解答填入的对应栏内。

    [说明]

    某停车场有多个入口和出口,车辆进入时从入口处由系统查询可用的停车位,从出口驶出时系统将其刚使用的车位标记为空车位。

    假设实现停车场管理的伪指令如下表1所示:

    根据上述描述,在入口处的伪代码程序为:

    x=Get();

    IF x=NULL THEN return 0;

    Writ(x,1);

    若两辆车在不同的入口处同时执行上述代码,会出现什么问题? (100字以内描述)


    正确答案:若两辆车在不同的入口处同时执行代码可能造成两辆车争用同一停车位。即两车同时申请到一个停车位并置为占用状态。
    若两辆车在不同的入口处同时执行代码,可能造成两辆车争用同一停车位。即两车同时申请到一个停车位,并置为占用状态。 解析:考查对并发情况下,会产生数据的不一致性问题,要求结合理论知识与实际问题,找出问题所在。两车同时读空车位时,可能会读到同一空车位,进而占用造成突,与并发控制中的丢失修改错误相类似。

  • 第3题:

    阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
    【说明】
    某企业网络拓扑如图1-1所示,A~E是网络设备的编号。










    答案:
    解析:
    【问题1】参考答案:1.B,2.A,3.C 4.D【问题2】5.ethernet 1 6、59.74.221.254【问题3】7) C.deny 8、A 9.F【问题4】10)192.168.4.1
    11)192.168.100.0 12)设置接口的类型是trunk
    【解析】
    【问题1】试题分析:这是一道简单的概念题,考察我们对企业园区网络的基本拓扑结构的了解。通常的企业为了确保内部网络的安全,会设置防火墙,防火墙有3个区域,外网,内网和DMZ区。DMZ通常用于存放各种服务器。因此首先可以选出B这个位置是防火墙,A用于连接Internet,是路由器。DMZ区内部有多台服务器,需要使用交换机连接。【问题3】试题分析:这是网络工程师考试第一次考华为的设备配置,而我们考前准备的都是ios的命令。那这道题是不是很难呢,其实这道题非常简单,只要我们有IOS的命令经验,这道题完全可以自己凭经验做出来,题目出题也是以选择题的形式,因此更加容易,对于没有用过华为设备的考生来说,也是非常简单的。
    【问题4】试题分析:这道题同样是基本的配置,掌握基本命令即可。

  • 第4题:

    阅读以下说明,回答问题1至问题4。

    [说明]

    在Linux操作系统中,TCP/IP网络可通过若干文本文件及命令进行配置。

    在Linux操作系统下,可通过命令______获得如图2-1所示的网络配置参数。

    A.netconf B.ifconf C.netconfig D.ifconfig


    正确答案:D
    D

  • 第5题:

    阅读以下说明,回答问题1至问题2,将解答填入答题纸对应的解答栏内。
    【说明】
    某留言系统采用ASP+Access开发,其后台管理登录页面如图4-1所示。

    【问题1】(9分)
    以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。



    【问题2】(6分)
    1.在登录页面 login.asp 中通过<!--#include file=“bbb.asp”-->导入了bbb.asp的代码,以下是bbb.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。



    答案:
    解析: