题7

题目

【2013 统考真题】某计算机采用{2|red|diagonal} 16 位定长指令字格式, 其 CPU 中有一个标志寄存器, 其中包含进位/借位标志 CF、零标志 ZF 和符号标志 NF 。假定为该机设计了条件转移指令,其格式如下:

其中, 00000 为操作码 OP; C, Z 和 N 分别为 CF、ZF 和 NF 的对应检测位, 某检测位为 1 时表示需检测对应标志,需检测的标志位中只要有一个为 1 就转移{4|pink|diagonal},否则不转移。
例如,若 C = 1, Z = 0, N = 1 ,则需检测CF和NF的值,当 CF = 1NF = 1 时发生转移;
OFFSET 是相对偏移量,用补码表示。
转移执行时, {3|green|diagonal}转移目标地址为{7|yellow|diagonal}(PC)+2+2xOFFSET;
顺序执行时, 下一条指令地址为(PC)+2{1|red|diagonal}。请回答下列问题:
(1) 该计算机存储器是按字节编址还是按字编址?该条件转移指令向后(反向)最多可跳转多少条指令?
(2) 某条件转移指令的地址为 200CH ,指令内容如下图所示,若该指令执行时 CF = 0, ZF = 0, NF = 1{5|pink|diagonal},则该指令执行后PC的值是多少? 若该指令执行时 CF = 1, ZF = 0, NF = 0 ,则该指令执行后PC的值又是多少?请给出计算过程。

(3) 实现 “无符号数{6|orange|diagonal}比较小于或等于时转移” 功能的指令中, C、Z 和 N 应各是什么?
(4) 以下是该指令对应的数据通路示意图, 要求给出图中部件 (1)-(3) 的名称或功能说明。

分析

每次加了二{1},同时它一个指令是16位,说明每一个存储单位的小格是8位的,也就是按照字节编址{2}

跳转的指令数,看的应该{3}是offset可以去到多少条指令

只要有一个{4}就跳转,这里有一个是N,检查NF,虽然ZF不是0,但是NF是,所以跳转{5}
第三问注意题目强调了无符号数{6},NF标志位不起作用

乘以2在硬件框图里{7}以算术左移的方式存在

题44

1.1. 因为指令长度为 16 位,且下一条指令地址为 ,因此编址单位是字节。

1.2. 相对偏移量 OFFSET 为 8 位补码,表示范围为 -128~127。根据转移目标地址为 ,若要向后跳转,则要求 OFFSET 必须为负数,OFFSET 的最小值为 -128,但在执行转移指令之前,PC 进行了自增 +2 的操作,所以向后最多可跳转 127 条指令。

指令中 ,因此应根据 的值来判断是否转移。 时,需转移。已知指令中的偏移量为 ,符号扩展后为 ,左移一位(乘以 2)后为 ,因此 的值(即转移目标地址)为 时不转移。 的值为

指令中的 应分别设置为 。两个数之间的大小比较通常是对两个数做减法运算,即两个数相减,当结果为 0 或为负时转移,若为 0,则 标志应当是 1,若为负,则借位标志应该是 1,而无符号数并不涉及符号标志 NF。

部件①用于存放当前指令,不难得出为指令寄存器;多路选择器根据符号标志 C/Z/N 来决定下一条指令的地址是 还是 ,因此多路选择器左边线上的结果应是 。根据运算的先后顺序及与 的连接,部件 ② 用于左移一位实现乘以 2,为移位寄存器。部件 ③用于 相加,为加法器。

部件②:移位寄存器(用于左移一位);部件③:加法器(地址相加)。