转载自https://www.cnblogs.com/wkfvawl/p/11104406.html
https://www.cnblogs.com/wkfvawl/p/10998575.html
(一)指令格式
1.指令的基本格式
2.定长操作码指令格式
3.扩展操作码指令格式
(二)指令的寻址方式
1.有效地址的概念
2.数据寻址和指令寻址
3.常见寻址方式
(三)CISC和 RISC的基本概念
2009
1.某机器字长16位,主存按字节编制,转移指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一个字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是
A. 2006H B.2007H
C. 2008H D.2009H
答案:C
考点:PC相对寻址方式
相对寻址EA=(PC)+A;
执行转移指令,第一步要取指令,是取指令后PC2000H的值。转移指令由两个字节组成,每取一个字节PC自动加1,因此取指令后PC值为2002H,故EA=(PC)+A=2002H+06H=2008H,故答案为C。
2.下列关于RISC的叙述中,错误的是
A. RISC普遍采用微程序控制器
B. RISC大多数指令在一个时钟周期内完成
C. RISC的内部通用寄存器数量相对CISC多
D. RISC的指令数、寻址方式和指令格式种类相对CISC少
答案:A
考点:RISC指令集和CISC的区别
RISC精简指令集特点:
RISC不是简单地简化指令系统,而是通过简化指令使计算机的结构更加简单合理,从而提高运算速度。
1、仅选使用频率高的一些简单指令和很有用但不复杂指令,指令条数少。
2、指令长度固定,指令格式少,寻址方式少。
3、只有取数/存数指令访问存储器,其余指令都在寄存器中进行,即限制内存访问。
4、CPU中通用寄存器数量相当多;大部分指令都在一个机器周期内完成。
5、以硬布线逻辑为主,不用或少用微程序控制。
6、特别重视编译工作,以简单有效的方式支持高级语言,减少程序执行时间。
3.某计算机主存容量为 64KB,其中 ROM 区为 4KB,其余为 RAM 区,按字节编址。现用 2K×8 位的 ROM 芯片和 4K×4 位的 RAM 芯片来设计该存储器,则需要上述规格的 ROM芯片数和 RAM 芯片数分别是
A.1、15 B.2、15
C.1、30 D.2、30
答案:D
考点:存储器芯片的组成
首先确定ROM的个数,ROM区为4KB,选用2K×8位的ROM芯片,需要片,采用字扩展方式;RAM区为60KB,选用4K×4位的RAM芯片,需要片,采用字和位同时扩展方式。
2010
18.下列寄存器中,反汇编语言程序员可见的是()
A.存储器地址寄存器(MAR)
B.程序计数器(PC)
C.存储区数据寄存器(MDR)
D.指令寄存器(IR)
答案:B
考点:所谓可见,就是程序员可以对其进行主动的修改。
15.假定用若干个2K x 4位芯片组成一个8K x 8为存储器,则0B1FH所在芯片的最小地址是( )
A.0000H B.0600H
C.0700H D.0800H
答案:D
考点:主存储器扩展的地址分配
2K x 4位芯片组成一个8K x 8为存储器,需要2K x 4的芯片8片。如果按字节编址,对应一个大小为8K×8位的存储器,需要13位地址,其中高2位(先进行位扩展,再进行字扩展,所以两个芯片位扩展后变为8位,这样的8位芯片组需要4组)为片选地址,低11位为片内地址,而题目给出的地址0B1FH转换为二进制为0 1011 0001 1111,其高3位为010,即片选地址为2。因此,地址0B1FH对应第2片芯片,该芯片的起始地址(最小地址)为 0 1000 0000 0000,即0800H。
第一组的起始地址: 000 00 0000 0000 001 11 1111 1111
第二组的起始地址: 010 00 0000 0000 011 11 1111 1111
第三组的起始地址: 100 00 0000 0000 101 11 1111 1111
第四组的起始地址: 110 00 0000 0000 111 11 1111 1111
16.下列有关RAM和ROM得叙述中正确的是( )
I RAM是易失性存储器,ROM是非易失性存储器
II RAM和ROM都是采用随机存取方式进行信息访问
III RAM和ROM都可用做Cache
IV RAM和ROM都需要进行刷新
A. 仅I和II B. 仅II和III
C. 仅I ,II, III D. 仅II,III,IV
答案:A
考点: RAM和ROM的区别
RAM是易失性存储器,ROM是非易失性存储器,都是采用随机存取方式进行信息访问,SRAM可以用来做Cache,RAM需要刷新。
2011
16.偏移寻址通过将某个寄存器内容与一个形式地址相加而生成有效地址。下列寻址方式中,不属于偏移寻址方式的是
A.间接寻址 B.基址寻址
C.相对寻址 D.变址寻址
答案:A
考点:偏移寻址的概念
相对寻址、变址寻址、基址寻址统称为偏移寻址。
17.某机器有一个标志寄存器,其中有进位/借位标志CF、零标志ZF、符号标志SF和溢出标志OF,条件转移指令bgt(无符号整数比较大于时转移)的转移条件是
A.CF+OF=1 B./ SF+ ZF =1
C. / (CF+ ZF) =1 D./ (CF+ SF) =1
答案:C
考点:指令标志位的含义
判断无符号整数A>B成立,满足的条件是结果不等于0,即零标志ZF=0,并且在这个比较就是两个数相减若A>B是不会造成借位的,即进位/借位标志CF=0。所以正确选项为C。
其余选项中用到了符号标志SF和溢出标志OF,显然可以排除掉。其实这里SF=0,OF=0,这样D也成立,但是不符合要求。
18.下列给出的指令系统特点中,有利于实现指令流水线的是
I. 指令格式规整且长度一致
II.指令和数据按边界对齐存放
III.只有Load/Store指令才能对操作数进行存储访问
A.仅I、II B.仅II、III
C.仅I、III D.I、II、III
答案:D
考点:以上三个RISC特征都能有效降低取指令或执行指令的复杂度,从而有利于流水线操作
19.假定不采用Cache和指令预取技术,且机器处于“开中断”状态,则在下列有关指令执行的叙述中,错误的是
A.每个指令周期中CPU都至少访问内存一次
B.每个指令周期一定大于或等于一个CPU时钟周期
C.空操作指令的指令周期中任何寄存器的内容都不会被改变
D.当前程序在每条指令执行结束时都可能被外部中断打断
答案:C
考点:中断的基本概念 ,寄存器用途,指令周期的概念,就算是进行空操作,只要有取指令的过程PC都要+1,所以任何寄存器的内容不会改变的说法错误。
14.下列各类存储器中,不采用随机存取方式的是
A.EPROM B.CDROM
C.DRAM D.SRAM
答案:B
考点:随机存取方式的定义,光盘采用顺序存储
15.某计算机存储器按字节编址,主存地址空间大小为64 MB,现用4M × 8位的RAM芯片组成32 MB的主存储器,则存储器地址寄存器MAR的位数至少是
A.22位 B.23位 C.25位 D.26位
答案:D
考点:主存地址空间和地址寄存器位数关系
64MB的主存地址空间,故而MAR的寻址范围是64M,故而是26位。而实际的主存的空间不能代表MAR的位数。
2012
16.下列关于闪存(Flash Memory)的叙述中,错误的是
A. 信息可读可写,并且读、写速度一样快
B. 存储元由 MOS 管组成,是一种半导体存储器
C. 掉电后信息不丢失,是一种非易失性存储器
D. 采用随机访问方式,可替代计算机外部存储器
答案:A
解析:闪存的写操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,而读操作不必如此,所以闪存的读速度比写速度快。其他三项均为闪存的特征。
引申一个问题:通用微机是否可以采用Flash Memory作为主机?
不可以,闪存需要将整片或这个分区擦除后才能写入,而且擦除写入时间又长,不能作为一般微机的主存,但可以作为磁盘的补充设备
2013
假设变址寄存器 R 的内容为 1000H,指令中的形式地址为 2000 H;地址 1000H 中的内容为 2000H,地址 2000H 中的内容为 3000H,地址 3000 H 中的内容为 4000H,则变址寻址方式下访问到的操作数是( )
A. 1000H B. 2000H C. 3000H D. 4000H
答案:D
2014
题目中指令为 32 位,操作码为 8 位(已经包含寻址方式位)。
源操作数采用寄存器直接寻址,因此可以用 4 位来标记使用哪一个寄存器。
目的操作数使用基址寻址,由于可以使用任何一个通用寄存器,因此需要 4 位来标记,所以偏移量站总数 32 - 8 - 4 - 4 = 16 位,因此答案为A.
答案:A
主要这里的说法是该DRMA芯片,所以256M这个信息没有作用。容量为 4M * 8,则需要 22 条地址线、8 条数据线。
DRAM 芯片的地址线,在芯片中,是分时复用的,仅需一半的引脚数,即够用。
2015
17.下列存储器中,在工作期间需要周期性刷新的是。
A.SRAM B.SDRAM
C.ROM D.FLASH
答案:B
DRAM的数据以电荷的形式保存在电容中,需要以刷新的方式,不断为电容充放电;而SRAM则以双稳态为存储单元,不需要周期性的刷新。
18、某计算机使用4 体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是()
A.8004和8008 B.8002和8007
C.8001和8008 D.8000 和8004
答案:D
解析:交叉存储器,又称低位交叉编址。
本题中,主存地址模4后对应的体号分别是:1,2,3,4,1,2,3,4,4。地址为8004和8000都是存取的四号储存器,可能导致8004存储还未完成而又存取8000地址,因此可能发生缓存冲突。
2016
16.某存储器容量为64kB,按字节编址。地址4000H~5FFFH为ROM区,其余为RAM区。若采用8K*4位的SRAM芯片进行设计,则需要该芯片的数量是()
A. 7 B. 8 C. 14 D. 16
答案:C
解析: ROM地址空间4000H~5FFFH为8K,则RAM容量=64-8=56KB=56K8,采用字和位同时扩展方式(56K8)/(8K*4)=14
其中M为寻址方式,I为变址寄存器编号,D为形式地址,若采用先变址后间址的寻址方式,则操作数的有效地址是()
A I+D B. (I)+D
C. ((I)+D) D. ((I))+D
答案:C
解析:变址+间址的寻址方式
【2010年真题】43题(11分)
某计算机字节长为16位,主存地址空间大小为128KB,按字编址。采用字长指令格式,指令名字段定义如下:
转移指令采用相对寻址,相对偏移用补码表示,寻址方式定义如下:
注:(X)表示有存储地址X或寄存器X的内容,请回答下列问题:(1)该指令系统最多可有多少指令?该计算机最多有多少个通用寄存器?存储地址寄存器(MAR)和存储数据寄存器(MDR)至少各需多少位?
答:该指令系统最多可有16条指令(OP4位,24=16),该计算机最多有8个通用寄存器(Ms和Md都是3位),存储地址寄存器(MAR)和存储数据寄存器(MDR)至少都需16位。因为地址空间大小为 128KB,按字编址,故共有 64K 个存储单元,地址位数为 16 位,所以MAR 至少为 16 位; 因为字长为 16 位, 所以 MDR 至少为 16 位。
这里对按字编址做出解释,在32位机中,一个字等于4个字节;在64位机中,一个字表示8个字节,那么字就是机器字长!对本题中的16位机来说,一个字等于2个字节,那么也就是将128KB=128k8b=6416b,故而需要64K个存储单元。
(2)转移指令的目标地址范围是多少?
答:转移指令的目标地址范围为0000H~FFFFH。(主存地址空间为128KB,0~217-1)
(3)若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H中的内容为1234H,则汇编语句“add (R4), (R5)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?
答:语句“add (R4), (R5)+”对应的机器码:0010(操作码)001(寄存器间接) 100(源操作数) 010(寄存器间接、自增) 101(目的操作数)B,十六进制表示为2315H。
该指令的功能是:把内存1234H单元中的数据与内存5678H单元中的数据进行相加,结果写回到5678H单元,而且R5的内容用作内存地址之后,还要执行R5的内容加1的操作,所以“add (R4), (R5)+”指令执行后,R5和存储单元5678H的内容会改变。执行后,R5的内容从5678H变为5679H。内存5678H单元的内容将变为该加法指令计算得到的和:5678H+1234H=68ACH。
前三位是片选地址,从000到010可知,需要三片,但ROM是8位的,RAM也需要8位,所以还要进行位扩展,最后得到需要8K * 4的芯片6片。
通过对ROM和RAM的地址分析,我们会发现一个问题,二者由于基本芯片的容量不同导致了需要的片选地址不同,该如何解决?下面给出两个方案。
方案一:
以内部地址少为主,地址译码方案:
Y0和Y1选ROM
Y4选RAM1,Y5选RAM2
方案二:
以内部地址多为主,地址译码方案:
用A15和A14作译码器输入
Y0选ROM;Y2选RAM1和RAM2
当A13=0时选RAM1,当A13=1时选RAM2