计算机系统结构 第二章(习题解答).doc
还剩
6页未读,
继续阅读
下载文档到电脑,马上远离加班熬夜!
亲,喜欢就下载吧,价低环保!
内容要点:
操作码 地址码零地址指令格式为:16操作码双地址指令 15 条,需要 4 位操作码来区分;单地址指令可以使用 10-4=6位操作码来区分;零地址指令可以使用 16-10=6 位操作码来区分。这样,各类型指令的条数为:双地址指令 15 条,操作码为:0000~1110;单地址指令 26-1=63 条,操作码为:1111 000000~1111 111110零地址指令 26=64 条,操作码为:1111 111111 000000~1111 111111 111111⑵ 假设双地址指令 x 条,则单地址、零地址分别为 9x 条:x92])2[(664???解之即得:x =14∴ 双地址指令 14 条,操作码为:0000~1101;留出两个编码用于扩展。单地址指令(2 6-1)×2 = 126 条,操作码为:1110 000000~1110 111110,1111 000000~1111 111110零地址指令 126 条,操作码为:1110 111111 000000~1110 111111 111110,1111 111111 000000~1111 111111 1111106 3% 111107 2% 11111这样,Huffman 编码法得到的操作码的平均长度为:l = 2×(0.35+0.25+0.20) + 3×0.10 + 4 ×0.05 + 5×(0.03 + 0.02)= 1.6+0.3+0.2+0.25 = 2.35⑵ 设计 8 位字长的寄存器-寄存器型指令如下:因为只有 8 个通用寄存器,所以寄存器地址需 3 位,操作码只有两位,设计格式如下:2 3 3操作码 OP 源寄存器 R1 目的寄存器 R2三条指令的操作码分别为 00、01、10。设计 16 位字长的寄存器-存储器型变址寻址方式指令如下:4 3 1 8操作码 OP 通用寄存器 变址寄存器 偏移地址四条指令的操作码分别为 1100、1101、1110、1111。6. 某处理机的指令字长为 16 位,有双地址指令、单地址指令和零地址指令三类,并假设每个地址字段的长度均为 6 位。(1) 如果双地址指令有 15 条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?并且为这三类指令分配操作码。(2) 如果要求三类指令的比例大致为 1:9:9,问双地址指令、单地址指令和零地址指令各有多少条?并且为这三类指令分配操作码。答:⑴ 双地址指令格式为:4 6 6操作码 地址码 1 地址码 2单地址指令格式为:10 65. 一台模型机共有 7 条指令,各指令的使用频度分别是35%、25%、20%、10%、5%、3%、2%,有 8 个通用数据寄存器,2 个变址寄存器。(1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。(2) 设计 8 位字长的寄存器-寄存器型指令 3 条,16 位字长的寄存器-存储器型变址寻址方式指令 4 条,变址范围不小于正、负 127。请设计指令格式,并给出各字段的长度和操作码的编码。答:⑴ 要使得到的操作码长度最短,应采用 Huffman 编码,Huffman 树构造如下:由此可以得到 7 条指令的编码分别如下:指令号 出现的频率 编码1 35% 002 25% 013 20% 104 10% 1105 5% 11100.35 0.25 0.2 0.1 0.05 0.03 0.020.050.10.20.40.61.00 10000011111码和计算的结果填入上面的表中。(4) 采用 3/7 扩展编码法编写这 10 条指令的操作码,并计算操作码的平均长度,计算与最优 Huffman 编码法相比的操作码信息冗余量。把得到的操作码编码和计算的结果填入上面的表中。答:采用最优 Huffma
发表评论
暂无评论,赶快抢占沙发吧。