问答题 假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址和二地址3种格式。
问答题 设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有多少种?
【正确答案】由于操作数的地址码为6位,因此二地址指令中操作码的位数为16-6-6=4位,即操作码只占4位。又由于操作码固定,因此零地址指令、一地址指令、二地址指令的总和不能超过16。现已知零地址指令有M种,一地址指令有N种,所有二地址指令最多有16-M-N种。
【答案解析】
问答题 采用扩展操作码技术,二地址指令最多有多少种?
【正确答案】在上题中算得二地址指令的操作码为4位,即最多有24=16条指令。但是绝对不能取16。如果取了16,就不能扩展成一地址指令和零地址指令了。因此,二地址指令最多只能有15条。
【答案解析】
问答题 采用扩展操作码技术,若二地址指令有P条,零地址指令有Q条,则一地址指令最多有几种?
【正确答案】由于操作码位数可变,且二地址指令、一地址指令和零地址指令的操作码长度分别为4位、10位、16位,因此二地址指令每减少一条,就可以多出26条一地址指令;一地址指令每减少一条,就可以多出26条零地址指令。根据以上分析,假设一地址指令有X条,则一地址指令最多有(24-P)×26条,零地址指令就应该最多有[(24-P)×26-R]×26条。根据题中给出的零地址指令有Q条,则可以得出一个公式,如下:
Q=[(24-P)×26-R]×26
可解得: R=(24-P)×26-Q×2-6
【答案解析】
问答题 某指令系统字长12位,地址码取3位,试提出一种方案,使该系统有4条三地址指令、8条二地址指令、150条一地址指令。列出操作码的扩展形式并计算操作码的平均长度。
【正确答案】这种类型的题目在本章例题中详细讲解过,在此不再赘述,只列出答案。 1)4条三地址指令 000 ××× ××× ××× 001 ××× ××× ××× 010 ××× ××× ××× 011 ××× ××× ××× 2)8条二地址指令 [*] 3)150条一地址指令 [*] 以上答案不唯一,只要满足不包含就行,即没有前缀码。这个和数据结构中的赫夫曼树的编码是很类似的。 操作码的平均长度=(3×4+6×8+9×150)/162≈8.7
【答案解析】
问答题 一条双字长的取数指令(LDA)存于存储器的200和201单元,其中第一个字为操作码OP和寻址特征M,第二个字为形式地址A。假设PC当前值为200(还没有取该条双字长指令),变址寄存器IX的内容为100,基址寄存器的内容为200,存储器相关单元的内容见表1。
{{B}}表1 存储器相关单元的内容{{/B}}
地址 201 300 400 401 500 501 502 700
内容 300 400 700 501 600 700 900 401
  表2的各列分别为寻址方式,该寻址方式下的有效地址以及取数指令执行结束后累加器ACC的内容(ACC中存放的其实就是有效地址对应的操作数),试补全表2。
{{B}}表2 各种寻址方式比较{{/B}}
寻址方式 有效地址EA 累加器ACC的内容
立即寻址 300
直接寻址
间接寻址
相对寻址
变址寻址
基址寻址
先变址后间址
先间址后变址
【正确答案】直接寻址:由于直接寻址的有效地址EA为形式地址本身,因此直接寻址的有效地址为300,根据题目给出的表格可知,地址为300对应的内容为400。
间接寻址:间接寻址中根据形式地址寻找到的内容才是真正的有效地址,即根据存储器的内容300找到的400才是间接寻址的有效地址,故有效地址为400,地址为400对应的内容为700。
相对寻址:相对寻址中形式地址加上PC的内容为有效地址,PC当前值为200,当取出一条指令后,变为202,故有效地址为202+300=502,地址为502对应的内容为900。
变址寻址:变址寻址的有效地址为形式地址加上变址寄存器的内容,因此有效地址为100+300=400,地址为400对应的内容为700。
基址寻址:基址寻址的有效地址为形式地址加上基址寄存器的内容,因此有效地址为200+300=500,地址为500对应的内容为600。
先变址后间址:先变址,即先是形式地址加上变址寄存器的内容,即400;再间址,意思就是根据地址400找到内容才是有效地址。因此,先变址后间址的有效地址为700。地址为700对应的内容为401。
先间址后变址:先间址,即先根据形式地址300找到间址的有效地址400;再变址,即400再加上变址寄存器的内容,也就是400+100=500,地址为500对应的内容为600。
综上所述,补全后的表如下所示:
寻址方式 有效地址EA 累加器ACC的内容
立即寻址 300
直接寻址 300 400
间接寻址 400 700
相对寻址 502 900
变址寻址 400 700
基址寻址 500 600
先变址后间址 700 401
先间址后变址 500 600
【答案解析】