以下对1、CISC和RISC的描述不正确。
a,CISC命令长度不固定
b,CISC命令的操作数必须存储在寄存器中
c,RISC命令长度是固定的
d,RISC命令的操作数必须存储在寄存器中
e,RISC体系结构的命令类型通常比CISC体系结构少
解决:
RISC:reduced Instruction Set Computer,精简命令系统计算机
减少命令类型,降低命令的复杂性
CISC:complex instruction set computer,复杂指令系统计算机
2、以下是对英特尔处理器和上市时间的错误说明。
a、英特尔8086——1978年
b、英特尔80286——1982年
c、英特尔8038633541988年(1985年)
d,英特尔奔腾33541993年
e,英特尔奔腾Pro——1995年
F.英特尔酷睿i733542008
g、英特尔酷睿2——2006
3、x86体系结构中寄存器EAX长度是多少位?32位
4、x86体系结构中寄存器AX长度是多少位?16位
解决:
5、IA-32寄存器型号包含哪些寄存器?(选择题选择题)
a、通用寄存器
b、指令指针寄存器
c,页面寄存器
d、标识寄存器
e,段寄存器
6、8086系统中标志位CF的意义是什么?
a,溢出标志
b、零标志
c,符号标志
d,舍入标志:Carry Flag
8、8086系统中标志位ZF的意义是什么?零标志(Zero Flag)
9、8086系统中间段寄存器DS的意义是什么?数据段寄存器(数据段)
10、8086系统中间寄存器CS的意义是什么?片段寄存器(代码段)
解决:
11;设置CS=2500h;DS=2400h;SS=2430h;BP=0200h;SI=0010h;DI=0206h;
MOV AX,[2000H] 26000H
解决:
物理地址=DS:2000H=2400H * 16(向左移动4位)2000H=24000H 2000H=26000H
CS(代码段):存放当前正在运行的程序代码所在段的段基地址*16存储在IP中的偏移量=指令的物理地址。
扩展:CPU怎样区分指令和数据?
CPU讲CS:IP所组合出来的地址所指向的内容全部当作指令。
DS(DataSegment):存放数据段的段基址,字符串的也归它。
SS(StackSegment):存放堆栈段的段基址。
ES(ExtraSegment):存放当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。
即数值的段基址默认存放在DS
12、设CS=2500H,DS=2400H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址:
MOV AX,[BP+SI+4] 24514H
解析:2430H * 16 + + 0200H + 0010H + 4H = 24300H + 0214H = 24514H
13、设CS=2500H,DS=2400H,SS=2430H,BP=0200H,SI=0010H,DI=0206H,计算下列x86指令源操作数的物理地址:MOV AX,[DI+100H] 24306H
解析:2400H * 16 + 0206H + 100H = 24000H + 0306H = 24306H
16、下列x86指令中,哪些属于算术运算指令?
A、ADD
B、DEC
C、MOV
D、IN
E、LEA
解析:
I、CALL:调用子程序
J、JNZ
解析:
K、LOOP
L、MUL:无符号乘法
17、下列关于MIPS指令的主要特点说法错误的是?
A、指令长度固定
B、寻址模式简单
C、只有Load和Store指令可以访问存储器
D、需要优秀的编译器支持
E、指令数量多,且功能复杂(少且简单)
解析:
18、MIPS按照指令的基本格式可以分为三种类型,以下不属于这三种类型的是?
A、R型指令
B、I型指令
C、J型指令
D、O型指令
解析:
20、某MIPS指令的机器码是0x20A5FFFF,对应的汇编指令是什么? addi $a1,$a1,-1
解析:
二进制数均以补码的形式存放在计算机中
正数:补码 = 原码
负数:补码 = 除符号位,原码剩余每位取反,末位+1
FFFF= 1111 1111 1111 1111 为补码形式,化为原码
1111 1111 1111 1110
1000 0000 0000 0001 = -1
0010(2) 0000(0) 1010(A) 0101(5) 1111 1111 1111 1111(FFFF)
可知为I型
001000(op = 8 = addi) 00101(rs = 5 = $a1) 00101(rt = 5 = $a1) 1111 1111 1111 1111(immediate = -1)
21、某MIPS指令的机器码是0x0005402A,对应的汇编指令是什么? slt $t0,$0,$a1(注意位置)
解析:
0000 0000 0000 0101(5) 0100(4) 0000 0010(2) 1010(A)
000000(R型指令) 00000(rs = 0 = $0) 00101(rt = 5 = $a1) 01000(rd = 8 = $t0) 00000 101010(可知指令类型为slt )
22、阅读下面的x86汇编程序,回答问题。
设DS=1000H
MOV SI, 1250H
MOV DI, 1370H
MOV CL, 3
MOV AX, DS
MOV ES, AX
MOV BX, 5
STD(DF置为1,从源串的高位开始传送)
REP MOVSB
请问,在这次串传送操作中,完成了第一个元素的传送后,SI寄存器的值是什么? 124FH
解析:
源串地址:DS:SI = 10000H + 1250H = 11250H
因为是从高位开始传送,传送完一个元素后,SI与DI自动减1
11250H = 112 0101 0000 (不够减向前借2)- 0001 = 112 4 F
25、阅读下面的x86汇编程序,回答问题。
设DS=1000H
MOV SI, 1250H
MOV DI, 1370H
MOV CL, 3
MOV AX, DS
MOV ES, AX
MOV BX, 5
CLD
REP MOVSB
请问,这次串传送操作,总共传送了多少个字节的数据? 不确定
解析:
26、如果想用8086 CPU把内存中某个区域的1024个字节的数据传送到另一个区域,可以选用如下三种方法:
(1)只使用传送指令(MOV);
(2)使用传送指令(MOV),并用条件转移指令建立循环语句的结构;
(3)使用串传送指令(MOVSB)以及必要的配合指令,不使用循环语句的结构。
请比较用这三种方法编写的程序,执行时访问存储器次数最少的是:方法三
27、如果想用8086 CPU把内存中某个区域的1024个字节的数据传送到另一个区域,可以选用如下三种方法:
(1)只使用传送指令(MOV);
(2)使用传送指令(MOV),并用条件转移指令建立循环语句的结构;
(3)使用串传送指令(MOVSB)以及必要的配合指令,不使用循环语句的结构。
请比较用这三种方法编写的程序,执行时访问存储器次数最多的是: 方法二
28、如果想用8086 CPU把内存中某个区域的1024个字节的数据传送到另一个区域,可以选用如下三种方法:
(1)只使用传送指令(MOV);
(2)使用传送指令(MOV),并用条件转移指令建立循环语句的结构;
(3)使用串传送指令(MOVSB)以及必要的配合指令,不使用循环语句的结构。
请比较用这三种方法编写的程序,程序代码占用存储器空间最大的是:方法1
29、很多x86指令的功能比较复杂,往往一条x86指令可以完成的功能,需要多条MIPS指令才能实现。请问下列x86指令中,哪些确定能够只用一条MIPS指令完成对应的功能?(注:只需考虑这条指令本身,不用考虑对后续指令的影响)
A、ADD ECX, 15H
B、MOV EAX, 28H
C、ADD EDX, EBX
D、ADD EAX, [13H](访寸需要额外的指令)
E、MOV EDX, [EBX+11H](访寸需要额外的指令)
F、ADD [EBX+ESI*4+200H], EAX(访寸需要额外的指令)
G、REP MOVSB
H、JZ LOOP_1