首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。 [说明] 在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。 设有
阅读以下说明和x86汇编语言代码,根据要求回答问题1至问题3。表6-3所示为 x86系统指令及寄存器说明表。 [说明] 在计算机控制中,有些数据补偿、计算及转换等参数的计算非常复杂,编程难,程序长且运算费时,但是用数表却比较容易实现。 设有
admin
2009-02-15
65
问题
阅读以下说明和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)126,或其对应的二进制数形式 (2)CMP BX,SI (3)MOV DI,BX (4)INC DX (5)END START 这是一道要求读者掌握对分查表法算法的程序分析题。本题的解答思路如下: ①对分查表法用于有序表的查找。对一个字节长度为N的有序表(从小到大排列),先取N/2处的值与待找的数据X进行比较,若X大于N/2处的值,则下一次取N/2至N的中间值即3N/4处的值进行比较,反之下一次取0至N/2的中间值即N/4处的值进行比较。如此不断对分查找,直到找出所需要的数据X。 ②结合以上算法思想,仔细分析试题的程序段。以下给出该程序段的每条语句的详细解析。 DATA SEGMENT ;DATA段定义伪指令 BINTAB DB 18,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 100 ; 所查找的数据 DATA ENDS ;DATA段定义结束伪指令 STAK SEGMENT ;STAK段定义伪指令 STPN DB 20 DUP(?) STAK ENDS ;STAK段定义结束伪指令 CODE SKGMENT ;CODE段定义伪指令 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 ;SI←数据表上指针 MOV CX,COUNT ;CS←数据块长度 MOV DX,1 ;立即数1送DX,表示第1次查询 MOV AX,SI ;数据表首地址送AX ADD AX,CX ;AX←数据表首地址十数据块长度 MOV DI,AX ;DI←数据表下指针(AX) MOV AL,KEY ;AL←要查询的数据 LOP0: MOV BX,SI ;数据表首地址送BX ADD BX,DI ;BX←数据表首地址+数据表尾地址 SHR BX,1 ;BX←中项指针=(SI+D1)/2,操作数逻辑右移 ;移一位相当对其除2 CMP AL,[BX] ;要查询的数据与中项数据比较 J2 FOUND ;结果相同,找到则转至FOUND PUSHF ;保存状态标志 CMP BX,SI ;比较中项指针=上指针? JZ NFOUND ;相等表示未找到,转至NFOUND POPF ;恢复状态标志 JL LESS ;要查询的数据小于中项数据时,转至 LESS MOV SI,BX ;要查询的数据大于中项数据时,修改上指针 JMP NEXT ;表示在后一半继续查找 LESS: MOV DI,BX ;要查询的数据小于中项数据时,修改下指针 ;表示在前一半继续查找 NEXT; INC DX ;查找次数加1 JMP LOP0 ;重新计算中项指针继续查找 NFOUND:MOV AX,DX ;未找到,标志全1送DX FOUND; MOV AK,DX ;查找次数送AX MOV FLAG,AX ;查找次数送FLAG单元 RET :返回主程序 BINSEATENDP ;过程(子程序)定义结束伪指令 CODE ENDS ;CODE段定义结束伪指令 END START ; 模块结束伪指令 ③由以上分析可知,根据“MOV AL,KE Y”、“CMP AL,[BX]”两条语句可推理出, (1)空缺处应填入题干中要求查询的数据126。 ④“CMP AL,[BX]”语句用于所查询的数据与中项数据比较,“JZ FOUND”语句表示如果比较结果相同,则转至找到后的处理标号FOUND处,由此可判断(2)空缺处填写的内容与所查询的数据不等于中项数据处理过程相关。 ⑤(2)空缺处的后一条语句“JZ NFOUND”语句表示如果比较结果相等,则转至未找到处理标号NFOUND处,由此可判断,该空缺处填写的内容用于判断查找过程是否可以结束,可通过比较中项指针是否等于数据表上指针的语句“CMP BX,SI”来完成此功能。 ⑥由(3)空缺处所在语句的标号“LESS”可知,(3)空缺处填写的内容与“JL LESS”语句(判断所查询的数据是否小于中项数据)相关。由对分查表法算法可知,当所查询的数据小于中项数据时,需修改数据表下指针,以使查找过程在前一半继续进行。因此该空缺处需填入与数据表下指针DI相关的语句“MOV DI,BX”。 ⑦同理,由(4)空缺处所在语句的标号“NEXT”可知,(4)空缺处填写的内容也与“JL LESS”语句(判断所查询的数据是否小于中项数据)相关。由对分查表法算法可知,当所查询的数据大于中项数据时,通过“MOV SI,BX”语句修改数据表上指针,以使查找过程在后一半继续进行。可见该空缺处是修改数据表下指针或上指针后继续查找的公共执行语句。再由“MOV DX,1”语句及“MOV AX,DX”、“MOV FLAG,AX”语句可推理出,(4)空缺处填写的内容是查找次数加1的“INC DX”语句。 ⑧由于(5)空缺处所填写的语句是程序模块的最后一条语句,因此由程序中启动标号“START”可推理出,该空缺处是一条与之相对应的模块结束伪指令“END START”,用于告诉汇编程序源文件结束,并给出执行程序的入口位置。 ⑨另外,为了使读者更深入掌握对分查表法的应用,下面给出用对分查表法进行子程序设计的步骤: a.表的长度放在CX寄存器中。 b.将BINTAB表的首地址放人SI寄存器中。 c.将要搜索的关键字放在AL中。 d.计算中点元素的地址(中项指针),并放入BX寄存器中。 e.将关键字AL与中点元素的值进行比较, 若(AL)<[BX),则选低值的半个表(即SI为首地址,[BX]为尾地址),并转步骤d; 若(AL)>[BX],则选高值的半个表(即[BX]为首地址,DI为尾地址),并转步骤d; 若(AL)=[BX],则找到并将查找次数送人FLAG存储单元。
解析
转载请注明原文地址:https://kaotiyun.com/show/KmWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
嵌入式SQL实现时,采用预处理方式是______。
开发专家系统时,通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是(27)。
在下列机制中,(23)________________是指过程调用和响应调用所需执行的代码在运行时加以结合;而(24)________________是过程调用和响应调用所需执行的代码在编译时加以结合。
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pj(i=1,2,…,n)管理车票销售过程。假设Tjj=1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所
需求分析阶段生成的文档中,用来描述企业中各项业务流程的是(61)________________。
设置日志文件的目的不包括(59)________________。
在互联网中,各种电子媒体按照超链接的方式组织,通常使用(22)________________来描述超链接信息。
某本科髙校新建教务管理系统,支撑各学院正常的教学教务管理工作。经过初步分析,系统中包含的实体有学院、教师、学生、课程等。考虑需要将本科学生的考试成绩及时通报给学生家长,新增家长实体;考虑到夜大、网络教育学生管理方式的不同,需要额外的管理数据,新增进修学
某系统由3个部件构成,每个部件的千小时可靠度都为R,该系统的千小时可靠度为(1-(1-R)2)R,则该系统的构成方式是()。
安全电子交易协议SET是由VISA和MasterCard两大信用卡组织联合开发的电子商务安全协议。以下关于SET的叙述中,正确的是()。
随机试题
慢性细菌性痢疾病程,常超过的时间是
A.疏肝理气,活血化瘀B.清热利湿,化瘀解毒C.养阴清热,解毒祛瘀D.理气化痰,消食散结E.温中散寒,健脾调胃治疗肝癌湿热瘀毒证,应首选
单位、银行在票据上的签章和单位在结算凭证上的签章,为该单位、银行的公章加其法定代表人或者其授权的代理人的签名或者盖章。()
在考虑政府教育资助时,理财规划师应考虑的问题不包括下列的( )。
某男2006年结婚,2012年其父病故。他和母亲及妹妹继承父亲的遗产。如果他想把继承的遗产送给母亲,他必须()。
劳动合同的变更应当采用的形式是()。
物料需求计划的依据是()。
区域物流平台的构建成功与否充分反映在通过平台的“现代化物流服务”的产品效率是否最高,成本是否最低上。()
某生物制剂公司采取活熊取胆收集原材料,视频曝光后引起社会各界质疑和反对。该企业负责人回应说,企业乃合法经营,熊不疼痛,况且“人非熊,焉知熊之疼痛”。于是引起更加广泛的议论。对此,你的看法是()
中年期的人格变得较为成熟,具体表现包括()。
最新回复
(
0
)