计算机组成与体系结构第2版习题答案补完计划-赵姝陈洁主编-第4章指令系统 - 安徽大学出版社

本文详细探讨了8086微处理器的七种寻址方式,比较了间接寻址与变址寻址的特点,并介绍了固定长编码、Huffman编码以及RISC和CISC指令系统的优缺点。同时讨论了不同类型的指令编码策略,如固定长编码的使用实例和扩展编码的计算问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

含有“AI:”开头的题目的答案是问chat的,看个乐就行,不一定正确

1。

2。指令一般由几部分构成,每一部分如何编码?

见书本p161 4.1机器指令特征

3。指令系统提供几种寻址方式?如何得到有效地址?

AI:

8086微处理器的指令系统提供了七种寻址方式,这些寻址方式允许程序员以多种方式指定操作数的位置。这七种寻址方式包括:

1)立即数寻址(Immediate Addressing):操作数直接嵌入在指令中,不需要访问内存。例如,MOV AX, 41h 中的 41h 就是一个立即数。

2)寄存器寻址(Register Addressing):操作数存放在CPU的内部寄存器中。例如,MOV AX, BX 将寄存器 BX 的内容移动到寄存器 AX 中。

3)直接寻址(Direct Addressing):指令中给出的地址码就是操作数的有效地址。例如,MOV AX, [2100h] 会将内存中段地址为 DS:2100h 的数据移动到寄存器 AX 中。

4)寄存器间接寻址(Register Indirect Addressing):操作数的有效地址由寄存器提供,通常是 BP、BX、SI 或 DI。例如,MOV AX, [BX] 会读取由寄存器 BX 指定的内存地址中的数据。

5)寄存器相对寻址(Register Relative Addressing):操作数的地址由寄存器与一个位移值相加得到。例如,MOV BX, 10[SI] 会将寄存器 SI 中的值加上 10 后得到的地址处的数据移动到寄存器 BX 中。

6)基址变址寻址(Base Indexed Addressing):通过组合基址寄存器和变址寄存器中的值来确定操作数的地址。例如,MOV AX, [BX + SI] 会使用基址寄存器 BX 和变址寄存器 SI 的内容来计算操作数的地址。

7)相对基址变址寻址(Relative Base Indexed Addressing):与基址变址寻址类似,但还包括一个相对位移量。例如,MOV AX, [BX + SI + 10] 会计算基址加变址加位移量的和来得到操作数的地址。

有效地址的计算通常涉及以下步骤:

  1. 对于直接寻址,直接使用指令中给出的地址码。
  2. 对于间接寻址,使用寄存器内容加上可能的位移值。
  3. 对于基址变址寻址和相对基址变址寻址,需要组合基址寄存器和变址寄存器的内容,再加上位移量(如果有的话)。

4。比较间接寻址与变址寻址的特点,如何更好地访问数组?

解;

间接寻址和变址寻址都可扩大寻址范围,但它们形成有效地址的方式不同:间址需通过访存(若是多次间址还需多次访存)得到有效地址;而变址需通过地址变换(将变址寄存器内容加上形式地址)得到有效地址,故通常间址指令执行时间比变址指令长。此外,两种指令的应用场合不同,变址寻址特别适用于处理数组问题。

5。简述固定长编码的优缺点。

AI:

固定长度编码(Fixed-Length Coding)是一种简单的编码方式,在这种方式中,每个指令或数据元素都被编码为具有相同长度的固定长度的序列。下面是固定长度编码的一些优缺点:

优点:

  1. 简化硬件设计:由于每个指令的长度是固定的,这使得指令译码变得简单。CPU中的指令解码电路不需要复杂的地址计算能力,因为每个指令的地址都按固定间隔排列。
  2. 减少译码时间:因为不需要花费时间来计算指令的地址,所以指令的译码速度得到提升。
  3. 指令条目对齐:固定长度的指令容易在内存中实现对齐,这对于提高访问效率是有利的。

缺点:

  1. 效率不高:如果一个指令的实际数据长度比编码长度短,那么就会造成空间的浪费。这在数据压缩和存储优化方面是不利的。
  2. 信息冗余度大:固定长度编码可能会导致较长的编码表示,尤其是在数据元素大小不一致时,冗余的信息较多。
  3. 可扩展性差:如果需要增加新的指令或数据类型,固定长度编码可能会导致需要在现有的编码体系中插入空闲的位或者扩展位数,这会引起一系列的兼容性问题,并可能需要对硬件进行升级。

6。简述Huffman编码法的优缺点。

AI:

Huffman编码是一种基于字符出现频率的编码方法,由David A. Huffman在1952年提出。它是一种无损数据压缩算法,广泛应用于数据传输和存储中。下面是Huffman编码的一些优缺点:

优点:

  1. 高效压缩:Huffman编码能够根据字符出现的频率进行编码,出现频率高的字符使用较短的编码,出现频率低的字符使用较长的编码。这使得编码后的数据长度更加紧凑,对于频繁出现的字符,编码效率非常高。
  2. 无损压缩:Huffman编码不会丢失任何数据,它是无损的。这意味着编码和解码过程中数据完整性得到保证。
  3. 易于实现:Huffman编码的算法实现相对简单,它只需要构建一棵Huffman树,然后根据这棵树进行编码。
  4. 适应性强:Huffman编码能够适应各种不同概率分布的字符集,不论数据是如何分布的,它都能生成最短的编码。

缺点:

  1. 编码复杂度高:对于数据量非常大的文件,构建Huffman树可能会需要较长的时间和大量的内存。
  2. 码表大小:Huffman编码需要存储编码表,对于一些小数据集,编码表本身可能就占用很大的空间。
  3. 不适合固定长度编码:Huffman编码不适合需要固定长度编码的应用,因为它生成的编码长度是可变的。
  4. 编码和解码速度:虽然Huffman编码本身很简单,但是在编码和解码时,需要查找Huffman树,这可能会导致速度上的瓶颈,尤其是在需要快速处理大量数据的情况下。

7。简述扩展编码设计的原理。

搜不到

8。简述4/10扩展编码与4-10扩展编码的区别。

搜不到

9。采用寄存器型指令在灵活性和性能提高方面的优势主要体现在哪几个方面?

解;

主要体现在以下3个方面。

①寄存器的访问速度比存储器快很多。

②对编译器而言能更加容易、有效地分配和使用寄存器。

③寄存器可以用来存放变量。这能带来许多好处第一由于寄存器比存储器快所以将变量分配给寄存器能加快程序的执行速度;第二能够减少对存储器的访问;第三可以用更少的地址位来对寄存器进行寻址从而有效地减少程序的目标代码所占用的空间。

10。采用寄存器型指令,在地址码部分对寄存器如何编码?

搜不到

11。设某台计算机系统中有20条指令,则采用固定长编码需要多长?可以采 用2-8扩展编码吗?可以采用3-6编码吗?

固定长编码需5位(20<2⁵),2-8扩展编码和3-6编码搜不到

12。假设使用4-8-12扩展编码对某个指令系统进行编码,则该指令系统最多可以有多少条指令?

搜不到

13。请将3-5-7扩展编码用“/”形式表示,即码点数形式,请至少写出3种不同的表示方式。

搜不到

14。设某台计算机的指令系统采用10/40/80扩展编码表示,请写出最短的码长表示方式,即“-”表示方式。

搜不到

15。请简述RISC指令系统的优缺点。

解;

RISC的主要优点有:

(1)简化指令系统设计,适合VLSI实现;

(2)提高机器的执行速度和效率;

(3)降低设计成本,提高系统的可靠性;

(4)可直接支持高级语言的实现,简化编译程序的设计。

RISC的主要缺点有:

(1)加重汇编语言程序设计的负担,目标程序变长,所占的存储空间增大;

(2)对浮点运算和虚拟存储器的支持还不够,机器的编译程序比CISC的难写。

16。请简述CISC指令系统的优缺点。

AI:

CISC(Complex Instruction Set Computer,复杂指令集计算机)架构是一种计算机指令集架构,它的设计思想是通过一组复杂的指令来完成更多的任务,从而减少指令的执行次数。以下是CISC指令系统的一些优缺点:

优点:

  1. 指令功能强:CISC架构的指令通常可以执行较复杂的操作,这意味着在单个指令中可以完成更多的任务,从而可能减少指令的总数和执行时间。
  2. 程序代码简洁:由于CISC指令可以执行复杂的操作,程序员可以使用更简洁的代码来完成任务,这有助于减少程序的大小和复杂性。
  3. 良好的兼容性:CISC架构通常支持向后兼容,新的处理器可以执行旧的指令集,这有助于确保软件的兼容性和迁移。

缺点:

  1. 指令执行时间长:由于CISC指令的功能复杂,它们可能需要更多的时间来执行,这可能导致处理器在每个时钟周期内执行的指令数量减少。
  2. 硬件资源利用率低:CISC指令集通常需要更多的硬件资源来执行复杂的指令,这可能导致处理器的设计更加复杂,硬件资源利用率低。
  3. 编译器难度大:CISC架构的编译器需要更复杂的优化技术来充分利用指令集的功能,这可能导致编译器的设计和实现更加困难。
  4. 性能优化受限:由于CISC指令的功能复杂,处理器优化的空间有限,这可能导致处理器的性能提升受到限制。

17。设某台计算机有10条指令,各指令的使用频度如下: MOV:30%, ADD: 25%, JMP:20%, PUSH:7%, POP7%, XOR:5%,INC: 2%,DEC:2%,CMP:1%,LOOP:1% 试分别用固定长编码、Huffman编码和3-5扩展编码为以上10条指令进行 编码,并计算各自的平均码长。

3-5扩展编码无答案

18。某机器的指令字长为16位,设有单地址指令和双地址指令两种,其中每个地址字段均为4位,请问双地址指令最多可以有多少条?

解;(自己做的答案,不一定正确。)

双地址指令如上,作为短码,必须给后续编码留出至少一个前缀。满足条件2⁸-x≥1,故x≤255,双地址指令最多可以有255条。

19。设某计算机的指令系统存在立即数寻址、寄存器寻址、直接寻址、基址寻址 和变址寻址等方式,请问地址码的编码设计应包括哪几种形式?各有哪些字段?

搜不到

20。某机器的指令系统指令字长为32位,地址字段长度为6。要求有3种指 令格式:双地址、单地址和零地址指令。其中双地址14条,零地址指令和单地址 指令条数相同,请问零地址指令可以有多少条?若零地址指令有255条,单地址 和双地址指令相同,则双地址指令可以有多少条?

解;(自己做的答案,不一定正确。)

双地址指令格式如上

①设零地址指令和单地址指令条数均为x

((2²⁰-14)-x)2⁶=x,

解得x=66,075,537.723,向下取整可得66,075,537条,零地址指令可以有66,075,537条。

②设双地址指令和单地址指令条数均为x

((2²⁰-x)-x)2⁶=255

解得x=1,032,444.0002

向下取整得1,032,444,即双地址指令可以有1,032,444条

21。某机器的指令系统指令字长为16位,地址字段长度为4。要求有3种指 令格式:双地址、单地址和零地址指令。其中双地址4条、单地址16条,请问零地 址指令可以有多少条?若零地址指令有255条,单地址有16条,双地址指令可以 有多少条?

解;(自己做的答案,不一定正确。)

①((2⁸-4)2⁴-16)2⁴=64256条

零地址指令可以有64256条

②设双地址指令有x条

((2⁸-x)2⁴-16)2⁴=255

解得x=254.0039

向下取整为254条

双地址指令可以有254条

其他私货:

1。

2。

某机指令字长16位,设有单地址和二地址指令两类,每个地址字段6位,且二地址指令有X条。问单地址指令最多可以有多少条?

3。

   关注微信公众号,回复“计算机组成”获取答案的word文档下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值