当前位置:问答库>考研试题

2018年齐鲁工业大学理学院872数据结构考研核心题库

  摘要

一、应用题

1. 某计算机采用16位定长指令字格式, 其CPU 中有一个标志寄存器, 其中包含进位/借位标志CF 、零标志ZF 和符号标志NF 。假定为该机设计了条件转移指令, 其格式如下:

其中, 00000为操作码OP ; C 、Z 和N 分别为CF 、ZF 和NF 的对应检测位, 某测位为1时表示需检测对应标志, 需检测的标志位中只要有一个为1就转移, 否则就不转移, 例如, 若C=1, Z=0, N=1, 则需检测CF 和NF 的值, 当CF=1或NF=1时发生转移; OFFSET 是相对偏移量, 用补码表示。

转移执行时,

转移目标地址为

顺序执行时,

下条指令地址为

请回答下列问题。

(1)该计算机存储器按字节编址, 还是按字编址?该条件转移指令向后(反向) 最多可跳转最多少条指令?

(2)某条件转移指令的地址为200CH , 指令内容如下图所示, 若该执行时CF=0, ZF=0, NF=1, 则该指令执行后PC 的值是多少?若该指令执行时CF=1, ZF=0Z, NF=0, 则该指令执行后PC 的值又是多少?请给出计算过程。

(3)实现“无符号数比较小于等时转移”功能的指令中, C 、Z 和N 应各是什么?

(4)以下是该指令对应的数据通路示意图, 要求给出中部件①〜③的名称或功能说明。 。 ;

【答案】(1)因为指令长度为16位且下条指令地址为

题中给出偏移量OFFSET 为8位补码, 其范围为

后最多可跳转127条指令。

(2)指令中C=0, Z=1, N=1, 故应根据ZF 和NF 的值来判断是否转移。当CF=0, ZF=0, NF=1时需转移。已知指令中偏移量为1110 0011B=E3H, 符号扩展后为FFE3H , 左移一位(乘2) 后为FFC6H , 故PC 的值(即转移目标地址) 为200CH+2+FFC6H=1FD4H当CF=1, ZF=0, NF=0时不转移。

PC 的值为200CH+2=200EH。

(3)指令中的C 、Z 和N 应分别设置为C=Z=1, N=0。

(4)部件①指令寄存器:用于存放当前指令; 部件②移位寄存器:用于左移一位; 部件③加法器:地址相加。

2. 如果两个串含有相等的字符,能否说它们相等?

【答案】仅从两串含有相等的字符,不能判定两串是否相等,两串相等的充分必要条件是两串长度相等且对应位置上的字符相同(即两串串值相等) 。

3. 某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时, 若有空座位, 则到取号机上领取一个号, 等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时, 通过叫号选取一位顾客, 并为其服务。顾客和营业员的活动过程描述如下:

, 故编址单位是字节。 , 故相对当前指令进行条件跳转, 向

请添加必要的信号量和P 、V(或wait ( )、signal ( )) 操作, 实现上述过程中的互斥与同步。要求写出完整的过程, 说明信号量的含义并赋初值。

【答案】(1)互斥资源:取机号, 故设一个互斥信号量mutex 。

(2)同步问题:顾客需要获得空座位等待叫号, 当营业员空闲时, 将选取一位顾客为其服务。空座位的有、无影响等待顾客数量, 顾客的有、无决定两营业员是否能开始服务。另外, 顾客获得空座位后, 需要等待叫号和被服务, 顾客与营业员就服务何时开始有同步关系。设信号量teller , customer 和mutex 初值分别为0, 0和1, 设waiting 为整型量, 表示排队的储户数量, 其初始为0, 表示顾客初始时为0, 最大不超过10(10把座椅) , 各进程的具体实现如下所示:

座椅数, 也是最多排队的储户数

定义信号量

等待储户的柜员资源

排队等待服务的储户数量

对排队机操作的互斥量

在座椅上休息等待的储户数

储户进程

先获得排队机

若还有座椅则取号

取号, 占用座椅等待叫号

告知系统储户加

1

释放排队机

等待柜员叫号

进入窗口被服务

若没有座椅了, 则不取号

不取号, 释放排队机

离开

并发调度无限循环