以下对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以计算以下x86命令源操作数的物理地址。

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

相关推荐