凑数
凑数
凑数
凑数
以下有关指令系统的说法中,错误的是()。
A.指令系统是一台机器硬件能执行的指令全体
B.任何程序运行前都要先转换为机器语言程序
C.指令系统是计算机软/硬件的界面
D.指令系统和机器语言是无关的
解析
1.D
指令系统是计算机硬件的语言系统,这显然和机器语言有关。
在CPU执行指令的过程中,指令的地址由()给出。
A.程序计数器(PC)
B.指令的地址码字段
C.操作系统
D.程序员
解析
2.A
$\color{red}{\text{PC}}$ 存放当前欲 $\color{green}{\text{执行指令的地址}}$ ,而指令的 $\color{red}{\text{地址码}}$ 字段则保存 $\color{green}{\text{操作数地址}}$ 。
下列指令中不属于程序控制指令的是()。
A.无条件转移指令
B.条件转移指令
C.中断隐指令
D.循环指令
解析
- C
程序控制类指令主要包括无条件转移、有条件转移、子程序调用和返回指令、循环指令等。 $\color{red}{\text{中断隐指令}}$ 是由 $\color{green}{\text{硬件实现}}$ 的,并不是指令系统中存在的指令,更不可能属于程序控制类指令。
下列指令中应用程序不准使用的指令是()。
A.循环指令
B.转换指令
C.特权指令
D.条件转移指令
解析
6.C
$\color{red}{\text{特权指令}}$ 是指仅用于 $\color{green}{\text{操作系统}}$ 或其他系统软件的指令。为确保系统与数据安全起见,这类指令不提供给用户使用。
- $\mho$(操作系统中关于特权指令的描述是怎么样的)
堆栈计算机中,有些堆栈零地址的运算类指令在指令格式中不给出操作数的地址,参加的两个操作数来自()。
A.累加器和寄存器
B.累加器和暂存器
C.堆栈的栈顶和次栈顶单元
D.堆栈的栈顶单元和暂存器
解析
7.C
零地址的运算类指令又称堆栈运算指令,参与的两个操作数来自栈顶和次栈顶单元。
注意:堆栈指令的访存次数,取决于采用的是软堆栈还是硬堆栈。若是软堆栈(堆栈区由内存实现),则对于双目运算需要访问4次内存:取指、取源数1、取源数2、存结果。若是硬堆栈(堆栈区由寄存器实现),则只需在取指令时访问一次内存。
以下叙述错误的是()。
A.为了便于取指,指令的长度通常为存储字长的整数倍
B.单地址指令是固定长度的指令
C.单字长指令可加快取指令的速度
D.单地址指令可能有一个操作数,也可能有两个操作数
解析
8.B
指令的地址个数与指令的长度是否固定没有必然联系,即使是单地址指令也可能由于单地址的寻址方式不同而导致指令长度不同。
10.设机器字长为32位,一个容量为16MB的存储器,CPU按半字寻址,其寻址单元数是()。
A. $2^{24}$
B. $2^{23}$
C. $2^{22}$
D. $2^{21}$
解析
10.B
16M = $2^{24}$ ,由于字长为32位,现在按半字(16位)寻址,相当于有8M(= 23)个存储单元,每个存储单元中存放16位。
某指令系统有200条指令,对操作码采用固定长度二进制编码,最少需要用()位。
A.4
B.8
C.16
D.32
解析
11.B
因128= $2^7$ <200< $2^8$ =256,因此采用定长操作码时,至少需要8位。
一个计算机系统采用32位单字长指令,地址码为12位,若定义了250条二地址指令,则还可以有()条单地址指令。
A.4K
B.8K
C.16K
D.24K
解析
图片详情
【2017统考真题】某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条、二地址指令107条,每个地址字段为6 位,则指令字长至少应该是()。
A.24位
B.26位
C.28位
D. 32位
解析
- A
三地址指令有29条,所以其操作码至少为5位。以5位进行计算,它剩余32-29=3种操作码给二地址。而二地址另外多了6位给操作码,因此其数量最大达3×64 = 192。所以指令字长最少为23位,因为计算机按字节编址,需要是8的倍数,所以指令字长至少应该是24位,选A。
假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址3种格式。
1)设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?
2)采用扩展操作码技术,二地址指令最多有几种?
3)采用扩展操作码技术,若二地址指令有Р条,零地址指令有Q条,则一地址指令最多有几种?
解析
图片详情
- Q:照这样说,为什么不用减去零地址指令,理论上一地址只需要10位
- A:零地址指令内含在一地址
在一个36位长的指令系统中,设计一个扩展操作码,使之能表示下列指令:
1 ) 7条具有两个15位地址和一个3位地址的指令。
2 ) 500条具有一个15位地址和一个3位地址的指令。
3 ) 50条无地址指令。
解析
图片详情
- $\blacktriangleright$(可以这样子设计地址的嘛,不是要求通过高位就能判断指令的种类嘛)
地址设计
图片详情
解析
图片详情
- $\mho$(不太会)
指令系统中采用不同寻址方式的目的是()。
A.提供扩展操作码的可能并降低指令译码难度
B.可缩短指令字长,扩大寻址空间,提高编程的灵活性
C.实现程序控制
D.三者都正确
解析
2.B
采用不同寻址方式的目的是为了缩短指令字长,扩大寻址空间,提高编程的灵活性,但这也提高了指令译码的复杂度。程序控制是靠转移指令而非寻址方式实现的。
直接寻址的无条件转移指令的功能是将指令中的地址码送入( )。
A.程序计数器( PC)
B.累加器( ACC)
C.指令寄存器(IR)
D.地址寄存器(MAR)
解析
3.A
无条件转移指令是指程序转移到新的地址后继续执行,因此必须给出下一条指令的执行地址,并送入程序计数器(PC)。
为了缩短指令中某个地址段的位数,有效的方法是采取().
A.立即寻址
B.变址寻址
C.基址寻址
D、寄存器寻址
解析
4.D
寄存器寻址中,只需指定寄存器的编号,因此能有效地缩短地址码的位数。
简化地址结构的基本方法是尽量采用()。
A.寄存器寻址
B.隐地址
C.直接寻址
D.间接寻址
解析
5.B
隐地址不给出明显的操作数地址,而在指令中隐含操作数的地址,因此可以简化地址结构,如零地址指令。
()便于处理数组问题。
A.间接寻址
B.变址寻址
C.相对寻址
D.基址寻址
解析
图片详情
- $\blacktriangleright$(为什么不是相对寻址)
相对寻址方式中,指令所提供的相对地址实质上是一种( ).
A.立即数
B.内存地址
C.以本条指令在内存中首地址为基准位置的偏移量
D.以下条指令在内存中首地址为基准位置的偏移量
解析
11.D
相对寻址中,有效地址EA = (PC) + A(A为形式地址),执行本条指令时,PC已完成加1操作,PC中保存的是下一条指令的地址,因此以下一条指令的地址为基准位置的偏移量
【2017统考真题】下列寻址方式中,最适合按下标顺序访问一维数组元素的是( ).
A.相对寻址
B.寄存器寻址
C.直接寻址
D.变址寻址
解析
12.D
在变址操作时,将计算机指令中的地址与变址寄存器中的地址相加,得到有效地址,指令提供数组首地址,由变址寄存器来定位数据中的各元素。所以它最适合按下标顺序访问一维数组元素,选D。相对寻址以PC为基地址,以指令中的地址为偏移量确定有效地址。寄存器寻址则在指令中指出需要使用的寄存器。直接寻址在指令的地址字段直接指出操作数的有效地址。
在多道程序设计中,最重要的寻址方式是()。
A.相对寻址
B.间接寻址
C.立即寻址
D.按内容寻址
解析
13.A
在多道程序设计中,各个程序段可能要在内存中浮动,而相对寻址特别有利于程序浮动,因此选A。
指令寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现( )。
A.程序浮动
B.程序的无条件浮动和条件浮动
C.程序的无条件转移和条件转移
D:程序的调用
解析
14.C
跳跃寻址通过转移类指令(如相对寻址)来实现,可用来实现程序的条件或无条件转移。
- $\mho$(什么是程序的浮动)
【2009统考真题】某机器字长为16位,主存按字节编址,转移指令采用相对寻址,由2字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是()。
A. 2006H
B. 2007H
C.2008H
D.2009H
解析
- C
相对寻址EA=(PC)+ A,先计算取指后的PC值。转移指令由2字节组成,每取一字节PC加1,在取指后PC值为2002H,因此EA=(PC)+ A= 2002H + 06H = 2008H。本题易误选A或B,选项A未考虑PC值的自动更新,选项B虽然考虑了PC值的自动更新,但未注意到 $\color{green}{\text{该转移指令是一条2字节指令,PC值应是“+2”而不是“+1”}}$ 。
2011真题,转移指令与标志位
图片详情
解析
16.C
假设两个无符号整数A和B,bgt指令会将A和B进行比较,也就是将A和B相减。若A>B,则A –B肯定无进位/借位,也不为0(为О时表示两数相等),因此CF和ZF均为0,选C。其余选项中用到了符号标志SF和溢出标志OF, $\color{green}{\text{显然}}$ 应当排除。
- $\mho$(为什么那么 $\color{green}{\text{显然}}$ )
2014真题,偏移量的取值范围
图片详情
解析
图片详情
- 这里的基值寻址需要指定基值寄存器号,和偏移量
某机器指令字长为16位,主存按字节编址,取指令时,每取一字节,PC自动加1。当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址为40H。则取指令后及指令执行后PC的内容为()。
A. 2000H,2042H
B.2002H,2040H
c.2002H,2042H
D.2000H,2040H
解析
18.C
指令字长为16位,2字节,因此取指令后PC的内容为(PC)+ 2= 2002H;无条件转移指令将下一条指令的地址送至PC,形式地址为40H,指令执行后PC=2002H +0040H = 2042H
- 可以和之前的统考真题相联系
对按字寻址的机器,程序计数器和指令寄存器的位数各取决于( )。
A.机器字长,存储器的字数
B.存储器的字数,指令字长
C.指令字长,机器字长
D.地址总线宽度,存储器的字数
解析
19.B
机器按字寻址,程序计数器(PC)给出下一条指令字的访存地址(指令在内存中的地址),因此取决于存储器的字数;指令寄存器(R)用于接收取得的指令,因此取决于指令字长。
假设某条指令的第一个操作数采用寄存器间接寻址方式,指令中给出的寄存器编号为8,8号寄存器的内容为1200H,地址为1200H 的单元中的内容为12FCH,地址为12FCH 的单元中的内容为38D8H,而地址为38D8H 的单元中的内容为88F9H,则该操作数的有效地址为()。
A.1200H
B.12FCH
C.38D8H
D.88F9H
解析
22.A
寄存器间接寻址中操作数的有效地址EA=( $R_i$ ),8号寄存器内容为1200H,因此 EA=1200H。
设相对寻址的转移指令占3B,第一字节为操作码,第二、三字节为相对位移量(补码表示),而且 $\color{green}{\text{数据在存储器中采用以低字节为字地址的存放方式}}$ 。每当CPU从存储器取出一字节时,即自动完成(PC)+1→PC。若PC的当前值为240(十进制),要求转移到290(十进制),则转移指令的第二、三字节的机器代码是();若 PC 的当前值为240 (十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是( )。
A. 2FH、FFH
B. D5H、00H
C. D5H、FFH
D. 2FH、00H
解析
图片详情
- 一个指令的长度位3个字节
- $\color{green}{\text{数据在存储器中采用以低字节为字地址的存放方式}}$ 的意思是数据按照小端存储
关于指令的功能及分类,下列叙述中正确的是()。
A.算术与逻辑运算指令,通常完成算术运算或逻辑运算,都需要两个数据
B.移位操作指令,通常用于把指定的两个操作数左移或右移一位
C.转移指令、子程序调用与返回指令,用于解决数据调用次序的需求
D.特权指令,通常仅用于实现系统软件,这类指令一般不提供给用户
解析
25.D
算术与逻辑运算指令用于完成对一个(如自增、取反等)或两个数据的算术运算或逻辑运算,因此A错误。移位操作用于把一个操作数左移或右移一位或多位,因此B错误。转移指令、子程序调用与返回指令用于解决变动程序中指令执行次序的需求,而不是数据调用次序的需求,因此C错误。
【2018统考真题】按字节编址的计算机中,某 double型数组A的首地址为2000H,使用变址寻址和循环结构访问数组A,保存数组下标的变址寄存器的初值为0,每次循环取一个数组元素,其偏移地址为变址值乘以sizeof (double),取完后变址寄存器的内容自动加1。若某次循环所取元素的地址为2100H,则进入该次循环时变址寄存器的内容是( )。
A. 25
B.32
C. 64
D. 100
解析
26.B
根据变址寻址的公式EA=(IX)+A,有(IX)=2100H - 2000H= 100H= 256,sizeof(double)=8(双精度浮点数用8位字节表示),因此数组的下标为256/8=32,答案选B。
- 注意2100是16进制
【2019统考真题】某计算机采用大端方式,按字节编址。某指令中操作数的机器数为1234 FF00H,该操作数采用基址寻址方式,形式地址(用补码表示)为FF12H,基址寄存器的内容为 F000 0000H,则该操作数的LSB(最低有效字节)所在的地址是( )。
A. F000 FF12H
B.F000 FF15H
C. EFFF FF12H
D.EFFF FF15H
解析
27.D
注意,内存地址是无符号数。
操作数采用基址寻址方式,EA =(BR)+A,基址寄存器BR的内容为F000 0000H,形式地址用补码表示为FF12H即 1111 1111 0001 0010B,因此有效地址为F000 0000H + (-00EEH)=EFFF FF12H。计算机采用大端方式编址,所以低位字节存放在字的高地址处,机器数一共占4字节,该操作数的LSB所在的地址是EFFF FF12H+3=EFFF FF15H,所以选D.
某计算机指令系统采用定长操作码和变长指令码格式。回答以下问题:
1)采用什么寻址方式时指令码长度最短?采用什么寻址方式时指令码长度最长?
2)采用什么寻址方式时执行速度最快?采用什么寻址方式时执行速度最慢?
3)若指令系统采用定长指令码格式,则采用什么寻址方式时执行速度最快?
解析
1)由于通用寄存器的数量有限,可以用较少的二进制位来编码,所以采用 $\color{green}{\text{寄存器寻址方式}}$ 和 $\color{green}{\text{寄存器间接寻址方式}}$ 的 $\color{red}{\text{指令码长度最短}}$ 。因为需要在指令中表示数据和地址,所以 $\color{green}{\text{立即寻址方式}}$ 、 $\color{green}{\text{直接寻址方式}}$ 和 $\color{green}{\text{间接寻址方式}}$ 的 $\color{red}{\text{指令码长度最长}}$ 。若指令码长度太短,则无法表示范围较大的立即数和寻址到较大的内存地址空间。
2)由于通用寄存器位于CPU内部,无须到内存读取操作数,所以 $\color{green}{\text{寄存器寻址方式}}$ 执行速度 $\color{red}{\text{最快}}$ 。而间接寻址方式需要读内存两次,第一次由操作数的间接地址读到操作数的地址,第二次再由操作数的地址读到操作数,所以 $\color{green}{\text{间接寻址方式}}$ 的执行速度 $\color{red}{\text{最慢}}$ 。
3)若指令系统采用 $\color{red}{\text{定长指令码格式}}$ ,所有指令(包括采用立即寻址方式的指令)所包含的二进制位数均相同,则 $\color{green}{\text{立即寻址方式}}$ 执行速度 $\color{red}{\text{最快}}$ ,因为读到指令的同时,便立即取得操作数。若采用变长指令码格式,由于要表示一定范围内的立即数,包含立即数的指令通常需要较多的二进制位,取指令时,可能需要不止一次地读内存来完成取指令。因此,采用 $\color{red}{\text{变长指令码格式}}$ 时, $\color{green}{\text{寄存器寻址方式}}$ 执行速度 $\color{red}{\text{最快}}$ 。
$\bigtriangledown$ EA的计算公式
图片详情
解析
图片详情
- 他这里的寻址范围相当于能寻址的数量
寻址得到的数据
图片详情
解析
图片详情
- 注意相对寻址的EA的计算
- 是202+500,而不是200+500
EA的计算
图片详情
解析
图片详情
- 注意相对寻址的计算
- 取值之后EA的值为1235H,而不是原来的1234H
2010真题
图片详情
解析
图片详情
- 位数可能会算错
- 第一位的权值是1,不知道为什么看成了2,指令的机器码写成了2315H
EA的计算
图片详情
解析
图片详情
- 注意相对寻址PC进行运算的时候,PC的值为202
- 注意先间址后变址:得到 $\color{green}{\text{间址的EA}}$ 后直接加 $\color{green}{\text{变址寄存器的值}}$ 即可,而不是用 $\color{red}{\text{间址的EA地址中的内容}}$ 加 $\color{green}{\text{变址寄存器的值}}$
- 同理变址后间址
2013年真题,配合门电路
图片详情
解析
图片详情
- 注意offset用补码表示
- 补码的两倍直接按机器数算,只需要移位即可
- $\mho$(为什么不是C+Z=1即可)
2015年真题
图片详情
解析
图片详情
- $\mho$(没做)
2017 年真题,汇编,c语言
图片详情
解析
图片详情
- 求所占空间的时候直接某尾地址减起始地址乘以8即可
- cmp指令的实现逻辑,$\mho$(为什么借位标志的运算是 「 进位 $\oplus$ 1 」) ?
2019年真题,汇编,c语言
图片详情
解析
图片详情
- $\mho$(判溢条件怎么来的,自陷指令又是啥))
2011真题,指令流水线
图片详情
解析
3.D
指令长度一致、按边界对齐存放、仅Load/Store指令访存,这些都是RISC的特征,它们使取指令、取操作数的操作简化且时间长度固定,能够有效地简化流水线的复杂度。
- 仅Load/Store指令访存,也有利于实现指令流水线
下列描述中,不符合RISC指令系统特点的是()。
A.指令长度固定,指令种类少
B.寻址方式种类尽量减少,指令功能尽可能强
C.增加寄存器的数目,以尽量减少访存次数
D.选取使用频率最高的一些简单指令,以及很有用但不复杂的指令
解析
4.B
A、C、D选项都是RISC 的特点。B选项中,寻址方式种类尽量减少是正确的,但RISC是尽量简化单条指令的功能,复杂指令的功能由简单指令的组合来实现,而 $\color{green}{\text{增强指令}}$ 的功能则是CISC的特点。
以下有关RISC的描述中,正确的是( )。
A.为了实现兼容,各公司新设计的RISC是从原来CISC系统的指令系统中挑选一部分实现的
B.早期的计算机比较简单,采用 RISC技术后,计算机的体系结构又恢复到了早期的情况
C. RISC的主要目标是减少指令数,因此允许以增加每条指令的功能的方法来减少指令系统所包含的指令数
D.以上说法都不对
解析
5.D
RISC的指令基本上都被CISC指令包含,但 $\color{green}{\text{RISC 并不是为实现兼容才挑选的}}$ ,而是选择最常用的简短的指令,因此选项A错误。选项B明显错误,体系结构由于流水线和 RISC技术,实现了很大的进步。RISC的指令功能简单,通过简单指令的组合来实现复杂指令的功能,因此选项C错误。