汇编语言复习资料2

  • 格式:docx
  • 大小:50.20 KB
  • 文档页数:21

一、 单选(每题1分,共20分)

1. 可以向地址总线发出地址信息的指令是( )。

A. mov ax,1

B. push ax

C. mov ax,bx

D. jmp ax

2. 一个字单元可以存储( )个bit。

A.1

B.8

C.16

D.32

3. 此时ax的值为00C5H,执行完“add al,85H”后,ax中的值是多少?( )

A.0158H

B.014AH

C.0058H

D.004AH

4. 80386CPU的地址总线宽度为32根,80386CPU的寻址能力是( )。

A.64KB

B.1024KB

C.16MB

D.4096MB

5. BIOS存储在下列哪种硬件中?( )

A. RAM

B. ROM

C. CPU

D. CMOS

6. 8086PC机一个段的最大长度为( )。

A.64Byte

B.64Kbit

C.1MB

D.64KB

7. 给定段地址为0002H,仅通过变化偏移地址寻址,8086CPU的寻址范围为( )。

A. 20H—2FH

B. 20H—30H

C. 20H—1001FH

D. 20H—10020H

8. 用 [di]、[bp]的方式访问内存时,8086CPU默认的段寄存器依次是( )。

A. ds、es

B. ds、ss

C. ss、ds

D. es、ss

9. debug加载.exe文件后,在对寄存器中的值进行改变之前,cx中的值有什么含义?( )

A. 循环次数。

B. 所加载的文件的字节数。

C. 是系统默认的值,没有实际意义。

D. 程序的长度。

10. 80386PC机开机后,CPU所执行的第一条指令的地址是( )。

A.0FFH:00

B.0FF0H:0FFH

C.0FFF0H:0FFH

D.0FFF0H:0F0H

11. 读取,执行哪条指令CPU会修改两次IP?( )

A. push

B. pushf

C. ret

D. mov

12. 在debug中查看内存,显示如下:

073F:0000 CD 20 3E A7 00 EA FD FF-AD DE 4F 03 A3 01 8A 03

073F:0010 A3 01 17 03 A3 01 92 01-01 01 01 00 02 FF FF FF

073FH:0013H处的字型数据是( )。

A.007AH

B.03A3H

C.A303H

D.0317H

13. 下列与外设相关的观点,正确的是( )。

A. 外设的输入不可存储在内存中。

B. CPU不可通过写内存,将信息输出到外设。

C. 外设有输入时,将输入信息送入相关的接口芯片的端口中,CPU响应相关的中断,再去端口中读取输入信息。

D. 外设有输入时,将输入信息送入相关的接口芯片的端口中,再由接口芯片将输入信息送到CPU。

14. 对于8086CPU,正确的指令是( )。

A. mov ax,[bp+dx]

B. mov ax,ds:[bp+bx]

C. mov ax,ss:[si][di]

D. mov ax,cs:6[si]

15. 关于转移指令,错误的说法是( )。

A.进行段内短转移时,jmp指令对应的机器码中没有转移的目的地址。

B.进行段间转移时,jmp指令对应的机器码中有转移的目的地址。

C.进行段内短转移时,IP的修改范围是0~255。

D.loop指令也是转移指令。

16. 以下关于8086CPU的div指令的说法,错误的是( )。

A. 被除数可以放在寄存器中,也可以放在内存单元中。

B. 若结果的商大于al或ax所能存储的最大值,将引发CPU的一个内部错误:除法溢出。

C. 可以重写0号中断处理程序,使得程序可以处理除法溢出的情况。

D. 可使用div指令编写一个计算32位被除数/8位除数的子程序。

17. 在debug中,用“d 0:0”查看内存,显示如下:

0000:0000 68 10 A7 00 8B 01 70 00-16 00 98 03 8B 01 70 00

0000:0010 8B 01 70 00 B9 06 0E 02-40 07 0E 02 FF 03 0E 02

0000:0020 46 07 0E 02 0A 04 0E 02-3A 00 98 03 54 00 98 03

0000:0030 6E 00 98 03 88 00 98 03-A2 00 98 03 FF 03 0E 02

0000:0040 A9 08 0E 02 A4 09 0E 02-AA 09 0E 02 5D 04 0E 02

0000:0050 B0 09 0E 02 0D 02 DD 02-C4 09 0E 02 8B 05 0E 02

0000:0060 0E 0C 0E 02 14 0C 0E 02-1F 0C 0E 02 AD 06 0E 02

0000:0070 AD 06 0E 02 A4 F0 00 F0-37 05 0E 02 3A 13 00 C0

13H号中断的中断处理程序的入口地址是( )。

A. 006EH:0398H

B. 020EH:045DH

C. 9803H:8800H

D. 0398H:0088H

18. CPU执行完哪条指令后,即使发生中断,也不会响应?( )

A. iret

B. cli

C. mov ss,ax

D. mov sp,16

19. 8086PC机的中断向量表,最多可以存放( )个中断处理程序的入口地址。

A. 128

B. 256

C. 512

D. 1024

20. 可以修改CX的指令是( )。

A. jmp B. div C. shl D. jcxz

二、 单选 (每题2分,共40分)

1. 以下关于8086CPU的栈机制的说法,错误的是( )。

A. 任意时刻,SS:SP指向栈顶元素。

B. retf指令不会引起栈空间超界。

C. push、pop实质上是一种内存传送指令。

D. 8086CPU的栈机制,没有对避免栈空间超界提供支持。

2. 关于汇编语言中“段”的概念,以下说法错误的是( )。

A. 用mov、add、sub等指令通过偏移地址访问data段中的数据前,应将data段的段地址放在ds中。 B. 一个段,可以既是数据段,又是桟段。

C. 一个段,不可以既是代码段,又是数据段。

D. 一个段中的内容对CPU来说是指令还是数据,关键在于对相关寄存器的设置。

3. 设置10000H~1FFFFH的内存空间为栈段,初始状态栈是空的,此时,SS、SP的值是( )。

A. SS=1000H SP=FFFEH

B. SS=0H SP=FFFEH

C. SS=1000H SP=0

D. SS=2000H SP=0

4. 关于标号,错误的说法是( )。

A. 数据标号表示了内存单元的地址和长度。

B. 后边加“:”的地址标号,只能在代码段中使用。

C. 应用assume将指令中的数据标号所在的段,与一个段寄存器联系起来,这样,使用数据标号的指令,就可以从段寄存器中得到所用数据标号的段地址。

D. 可以将一个标号集合存储在直接定址表中。

5. 关于PSP,错误的说法是( )。

A. 这个程序设置(CS)*16+(IP)= PSP所在内存空间的首地址。

assume cs:code

code segment

start:

mov ax,0

mov es,ax

mov word ptr es:[200h],0

mov es:[202h],ds

jmp dword ptr es:[200h]

code ends

end start

B. PSP共有256个字节。

C. DOS通过PSP来与其所加载的程序进行通信。

D. 用debug加载一个其功能是设置(ds)=(cs)的程序后,即用a命令写且用T命令运行以下程序段: mov ax,ds

sub ax,10

mov ds,ax

之后用“dds:0 ff”,可对PSP所在的内存空间进行查看。

6. 以下程序中所有的转移指令的机器码都是两个字节。用一条指令补全程序,使其可以由代码段中的程序段返回。( )

assume cs:code

code segment

mov ax,4c00h

int 21h

start:

nop

nop

push cs

pop ds

mov si,offset o

mov di,offset start

mov ax,ds:[si]

mov ds:[di],ax

mov cx,-2

s:

_____________

jcxz start

o: loop s

code ends

end start

A. add cx,2(机器码:83H C1H 02H)

B. add cx,1(机器码:83H C1H 01H)

C. inc cx(机器码:41H)

D. 以上都不对