(一)指令格式
1.指令的基本格式
2.定长操作码指令格式
3.扩展操作码指令格式
(二)指令的寻址方式
1.有效地址的概念
2.数据寻址和指令寻址
3.常见寻址方式
(三)CISC和 RISC的基本概念
2009
16.某机器字长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。
17.下列关于RISC的叙述中,错误的是
A. RISC普遍采用微程序控制器
B. RISC大多数指令在一个时钟周期内完成
C. RISC的内部通用寄存器数量相对CISC多
D. RISC的指令数、寻址方式和指令格式种类相对CISC少
答案:A
考点:RISC指令集和CISC的区别
RISC精简指令集特点:
RISC不是简单地简化指令系统,而是通过简化指令使计算机的结构更加简单合理,从而提高运算速度。
1、仅选使用频率高的一些简单指令和很有用但不复杂指令,指令条数少。
2、指令长度固定,指令格式少,寻址方式少。
3、只有取数/存数指令访问存储器,其余指令都在寄存器中进行,即限制内存访问。
4、CPU中通用寄存器数量相当多;大部分指令都在一个机器周期内完成。
5、以硬布线逻辑为主,不用或少用微程序控制。
6、特别重视编译工作,以简单有效的方式支持高级语言,减少程序执行时间。
2010
18.下列寄存器中,反汇编语言程序员可见的是()
A.存储器地址寄存器(MAR)
B.程序计数器(PC)
C.存储区数据寄存器(MDR)
D.指令寄存器(IR)
答案:B
考点:所谓可见,就是程序员可以对其进行主动的修改。
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,所以任何寄存器的内容不会改变的说法错误。
2013
假设变址寄存器 R 的内容为 1000H,指令中的形式地址为 2000 H;地址 1000H 中的内容为 2000H,地址 2000H 中的内容为 3000H,地址 3000 H 中的内容为 4000H,则变址寻址方式下访问到的操作数是( )
A. 1000H B. 2000H C. 3000H D. 4000H
答案:D
2014
17. 某计算机有16个通用寄存器,采用32位定长指令字,操作码字段(含寻址方式位)为8位,Store指令的源操作数和目的操作数分别采用寄存器直接寻址和基址寻址方式,若基址寄存器可使用任一通用寄存器,且偏移量用补码表示,则Store指令中偏移量的取值范围是
A -32768~+32767 B -32767~+32768
C -65536~+65535 D -65535~+65536
题目中指令为 32 位,操作码为 8 位(已经包含寻址方式位)。
源操作数采用寄存器直接寻址,因此可以用 4 位来标记使用哪一个寄存器。
目的操作数使用基址寻址,由于可以使用任何一个通用寄存器,因此需要 4 位来标记,所以偏移量站总数 32 - 8 - 4 - 4 = 16 位,因此答案为A.
2016
16.某指令格式如下,
其中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=128k*8b=64*16b,故而需要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。