题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 = 1 或 NF = 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}以算术左移的方式存在

解
1.1. 因为指令长度为 16 位,且下一条指令地址为
1.2. 相对偏移量 OFFSET 为 8 位补码,表示范围为 -128~127。根据转移目标地址为
指令中
指令中的
部件①用于存放当前指令,不难得出为指令寄存器;多路选择器根据符号标志 C/Z/N 来决定下一条指令的地址是
部件②:移位寄存器(用于左移一位);部件③:加法器(地址相加)。