B.RISC大多数指令在一个时钟周期内完成 C.RISC的内部通用寄存器数量相对CISC多
D.RISC的指令数、寻址方式和指令合适种类相对CISC少 4.假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式。 1)设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种? 2)采用扩展操作码技术,二地址指令最多有几种?
3)采用扩展操作码技术,若二地址指令有P条,零地址指令有Q条,则一地址指令最多有几条?
5.某机字长为16位,直接寻址空间为128字,变址时的位移量量是-64?+63,16个通用寄存器都可以作为变址寄存器,设计一套指令系统,满足下列寻址类型的要求:
1)直接寻址的二地址指令为3条。 2)变址寻址的一地址指令为6条。 3)寄存器寻址的二地址指令为8条。 4)直接寻址的一地址指令为12条。 5)零地址指令为32条。
6.某模型机共有64种操作码,位数固定,且具有以下特点: 1)采用一地址或二地址格式。
2)有寄存器寻址、直接寻址和相对寻址(位移量为-128?+127)三种寻址方式。
3)有16个通用寄存器,算术运算和逻辑运算的操作数均在寄存器中,结果也在寄存器中。 4)取数/存数指令在通用寄存器和存储器之间传送数据。 5)存储器容量为1MB,按字节编址。
要求设计算术逻辑指令、取数/存数指令和相对转移指令的格式,并简述理由。 7.某机器采用一地址格式的指令系统,允许直接和间接寻址。机器配备有如下硬件:ACC、WAR、WDR、PC、X、MQ、IR以及变址寄存器RX和基址寄存器RB,均为16位。
1)若采用单字长指令,共能完成105种操作,则指令一次间址的范围是多少?
2)若采用双字长指令,操作码位数及寻址方式不变,则指令可直接寻址的范围又是多少?画出其指令格式并说明各字段的含义。
3)若存储字长不变,可采用什么方法访问容量为8MB的主存?需增设哪些硬件? 8.某机字长为16位,存储器按字编址,访问内存指令格式如下:
15 11 10 8 7 0 OP M A 其中,OP为操作码;M为寻址特征;A为形式地址。设PC和Rx分别为程序计数器和变址寄存器,字长为16位,问:
1)该指令能定义多少种指令?
2)表4-4中各种寻址方式的寻址范围是多少?
3)写出表4-4中各种寻址方式的有效地址EA的计算公式。
表4-4 例8的表 寻址方式 有效地址EA的计算公式 寻址范围 立即寻址 直接寻址 间接寻址 变址寻址 相对寻址 分析:考查指令格式的特点、寻址方式有效地址EA的公式、寻址范围。 9.某计算机字长为16位,主存地址空间大小为128KB,按字编址,采用定长指令格式,指令各字段定义如下:
13
15 12 11 6 5 0 OP Ms Rs Md Rd 转移指令采用相对相对寻址方式,相对偏移量是用补码表示,寻址方式定义见表4-6.
表4-6
Ms/Md 寻址方式 助记符 含义 000B 寄存器直接 Rn 操作数=(Rn) 001B 寄存器间接 (Rn) 操作数=((Rn)) 010B 寄存器间接、自增 (Rn)+ 操作数=((Rn)),(Rn)+1?Rn 011B 相对 D(Rn) 转移目标地址=(PC)+(Rn) 注:(×)表示存储器地址×或寄存器×的内容,请回答下列问题: 1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需多少位?
2)转移指令的目标地址范围是多少?
3)若操作码0010B表示加法操作(助记符为a d d),寄存器R4和R5的编号分别为100B和101B,R4的内容为1 2 3 4 H,R5的内容为5 6 7 8 H,地址1 2 3 4 H中的内容为5 6 7 8 H,5678H中的内容为1 2 3 4 H,则汇编语言为a d d (R4),(R5)+(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么?(用十六进制表示)该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?
试题精选
单项选择题
1.在CPU执行指令的过程中,指令的地址由(A)给出。
A.程序计数器PC B.指令的地址码字段 C.操作系统 D.程序员 2.下列关于指令的功能及分类叙述正确的是(D)
A.算术与逻辑运算指令,通常完成算术运算或逻辑运算,都需要两个数据 B.移位操作指令,通常用于把指定的两个操作数左移或右移一位 C.转移指令、子程序调用与返回指令,用于解决数据调用次序的需求 D.特权指令,通常仅用于系统软件,这类指令一般不提供给用户 3.以下叙述错误的是(B)。
A.为了充分利用存储空间,指令的长度通常为字节的整数倍 B.单地址指令时固定长度的指令 C.单字长指令可加快指令的速度
D.单地址指令可能有一个操作数,也可能有两个操作数 4.关于二地址指令以下论述正确的是(A)。
A.二地址指令中,运算结果通常存放在其中一个地址码所提供的地址中 B.二地址指令中,指令的地址码字段存放的一定是操作数 C.二地址指令中,指令的地址码字段存放的一定是寄存器号 D.二地址指令中,指令的地址码字段存放的一定是操作数地址
5.单字长四地址指令OP A1,A2,A3,A4的功能为(A1)OP(A2)?A3,且A4给出下一条指令地址,假设A1,A2,A3,A4都为主存储器地址,则完成上述指令需访存(D)次。
A.1 B.2 C.4 D.5 6.在指令格式设计中,采用扩展操作码的目的是(C)。
A.增加指令长度 B.增加地址码数量 C.增加指令数量 D.增加寻址空间
7.某机器指令字长为16位,有8个通用寄存器,有8种寻址方式,单操作数指令最多有(),双操作数指令最多有(A)。
A.1024 16 B.2048 32 C.256 64 D.1024 32
14
8.指令寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现(C)。 A.程序浮动 B.程序的无条件浮动和条件浮动 C.程序的无条件转移和条件转移 D.程序的调用
9.某机器指令字长为16位,主存按字节编址,取指令时,每取一个字节PC自动加1.当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址D=40H。那么取指令后及指令执行后PC内容为(C)。
A.2000H, 2042H B.2002H, 2040H C.2002H, 2042H D.2000H, 2040H 10.指令系统中采用不同寻址方式的目的主要是(B)。
A.可降低指令译码难度 B.缩短指令字长,扩大寻址空间,提高编程灵活性 C.实现程序控制 D.降低编程难度 11.采用直接寻址方式,则操作数在(A)。
A.主存中 B.寄存器中 C.直接存取存储器中 D.光盘中 12.下列关于基址寻址方式,则操作数在(D)。
A.基址寄存器内容由用户确定,在程序执行过程中不可变 B.变址寄存器内容由用户确定,在程序执行过程中不 可变
C.在程序执行过程中,变址寄存器、基址寄存器的内容都是可变的
D.在程序执行过程中基址寄存器的内容不可变,变址寄存器中的内容可变 13.寄存器间接寻址方式中,操作数在(C)。
A.通用寄存器 B.堆栈 C.主存单元 D.专用寄存器 14.假设寄存器R中的数值为200,主存地址为200和300的地址单元中存放的内容分别是300和400,则(D)方式下访问到的操作数为200.
A.直接寻址200 B.寄存器间接寻址(R) C.存储器间接寻址(200) D.寄存器寻址R
15.设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),若CPU每当从存储器取出一个字节时,即自动完成(PC)+1?PC。设当前PC的内容为2003H,要求转移到地址200AH,则该转移指令第二个字节的内容应为(A),若PC的内容为2008H,要求转移到2001H,则该转移指令第二字节的内容为(D)。
A.05H B.07H C.F8H D.F7H 16.变址寻址、相对寻址的特点是(A)。 A.利于编制循环程序、实现程序浮动 B.实现程序浮动、处理数组问题
C.实现转移指令、利于编制循环程序 D.实现程序浮动、利于编制循环程序
17.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序是(C)。 A.直接、立即、间接 B.直接、间接、立即 C.立即、直接、间接 D.立即、间接、直接 18.堆栈寻址的原则是(B)。
A.后进后出 B.后进先出 C.先进先出 D.不确定
19.堆栈寻址方式中,设A为累加器,SP为堆栈指示器,MSP为SP指示的栈顶单元,如果进栈操作的动作顺序是(A)?MSP,(SP)-1?SP,那么栈操作的动作顺序应为(B)。
A.(MSP)? A,(SP)+1?SP B. (SP)+1?SP,(MSP)? A C. (SP)-1?SP,(MSP)? A D.以上都不对 20.下列说法中不正确的是(C)。
A.变址寻址时,有效数据存放在主存中 B.堆栈是先进后出的存储器
C.堆栈指针SP的内容表示当前堆栈内所存储的数据的个数 D.内存中指令的寻址和数据的寻址是交替进行的
15
21.程序计数器和指令寄存器的位数各取决于(B)。
A.机器字长,存储器的容量 B.存储器的容量,指令字长 C.指令字长,机器字长 D.地址总线宽度,存储器容量 22.运算型指令的寻址与转移性指令的寻址不同点在于(A)。 A.前者取操作数,后者决定程序转移地址 B.后者取操作数,前者决定程序转移地址 C.前者是短指令,后者是长指令 D.前者是长指令,后者是短指令 23.以下叙述中(A)是正确的。 A.RISC机一定采用流水技术
B.采用流水技术的机器一定是RISC C.CISC机一定不采用流水技术 D.以上答案均不正确 综合应用题
1. 指令中一般有哪些字段?各有何作用?如何确定这些字段的位数? 2. 什么是变址寻址、基址寻址?两者有何区别?
3. 某计算机的指令系统字长为16位,采用扩展操作码,操作数需4位。该指令系统已有三地址指令M条,二地址指令N条,没有零地址指令。问:最多还有多少条一地址指令? 4. 某机存储器容量为64K×16位,该机访存指令格式如下: OP M I X A 0 3 4 5 6 7 8 15
其中,M为寻址特征(0为直接寻址,1为基址寻址,2为相对寻址,3为立即寻址,立即数用补码表示);I为间址特征(I=1间址);X为变址特征(X=1变址)。
设PC为程序计数器,Rx为变址寄存器,RB为基址寄存器,试问: 1)该指令能定义多少种操作? 2)立即寻址操作数的范围。
3)在非间址情况下,除立即寻址外,写出每种寻址方式计算有效地址的表达式。 4)设基址寄存器为14位,在非变址直接基址寻址时,指令的寻址范围是多少? 5)间接寻址时,寻址范围是多少?若允许多重间址呢?
5.某机字长为16位,主存容量为64KB,指令为单字长指令,有50种操作码,采用页面、间接和直接寻址方式。
1)指令格式如何安排?
2)存储器能划分为多少页面?每页多少单元? 3)能否再增加其他寻址方式?
6.某机器采用三地址指令,具有常见的8种寻址操作,可完成50种操作,各种寻址方式均可在1KB主存范围内取得操作数,并可在1KB范围内保存运算结果。问应采用什么样的指令格式?指令字长最少应为多少位?执行一条指令最多要访问多少次主存?
7.某台字长和地址都为16位的计算机,程序计数器为PC,内存以字编址。地址为2003H的内存中,有一条无条件相对转移指令,其机器码为41FCH,其中的操作码为8位,请计算相对转移的具体地址。
8.某16位机器所使用的指令格式和寻址方式如图4-12所示,该机有两个20位基址寄存器,4个16位变址寄存器,16个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存的一个单元,三种指令的操作码分别是MOV(OP)=(0A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV为传送指令,STA为写数指令,LDA为读数指令。
16