汇编语言期末复习题(2012)

更新时间:2023-11-07 18:03:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【王爽-汇编语言】第二章检测题分析 第二章检测题分析

一、下列关于8086CPU的工作原理的描述错误的是_____。

1、 汇编程序员可以通过对各种寄存器中内容的修改实现对CPU的控制。

2、 CPU在访问内存时,采用“段地址*16+偏移地址”的形式给出要访问的内存单元的物理地址。

3、 任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。 4、 传送指令能够更改所有通用寄存器的内容。

二、在DEBUG中,____选项中的命令可以修改内存单元的内容 1、 a 2、 d 3、 t 4、 u

三、下列说法中正确的是:____

1、 一条指令被执行后,IP的值进行改变。

2、 当CPU执行完当前指令返回debug后CPU就闲下来不再进行工作。 3、 e命令可将所有内存单元中的数据进行改变。

4、 CPU将CS:IP所指向的内存单元中的数据当作指令来执行。

四、下面哪个是错误的指令_____

1、 mov ax,bx 2、 add al,0f5H 3、 mov al,bh 4、 add al,100H

五、16位结构的CPU 不一定具备的特性是:____ 1、 运算器一次最多可以处理16位的数据 2、 寄存器的最大宽度为16位

3、 寄存器和运算器之间的通路为16位 4、 地址总线为16根

六、下列说法中正确的是:____

1、 8086CPU采用“段地址*16+偏移地址=物理地址”的寻址模式,所以内存是由一个一个的段组成,每一个段有一个段地址。

2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。 3、 一个段的大小可以是8Byte。

4、 在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。

【王爽-汇编语言】第三章检测题分析

1.能够只将al中的内容压入栈的指令序列是_____。 1、 push al 2、 pop ax 3、 mov ah,0 push ax 4、 mov ax,0 push ax

2.下列说法正确的是:____

1、 数据段和代码段的段地址不能相同。

2、 指令mov ax,bx执行完后bx中的值为零。 3、 一个栈段的大小可以设为任意值。

4、 当SP=0时,再次压栈将发生栈顶超界,但压栈操作有效。

3.在8086CPU系统中一个栈段的容量最大为_____。 1、 1KB 2、 512KB 3、 64KB 4、 32GB

4. 下列指令的书写正确的是:____ 1、 push al

2、 mov cs:[0],ds:[10] 3、 pop si

4、 mov ds:[0],2

5.若将以1000H为段地址的整个段空间当作栈使用,那么寄存器SP的初始值最合理的设置是_____。 1、 0000H 2、 0001H 3、 FFFFH 4、 FFFEH

6. 能够将ax中的内容送到内存0000:0200H处的指令序列是____。 1、

mov ds,0 mov bx,200h mov [bx],ax 2、

mov ax,200h mov ds,ax mov bx,0 mov [bx],ax 3、

mov ax,20h mov ds,ax mov bx,0 mov [bx],ax 4、

mov bx,20h mov ds,bx mov bx,0

mov [bx],ax

【王爽-汇编语言】第四章检测题分析 (1)关于伪指令相关描述错误的是___。

1、 伪指令没有对应的机器码,只用来指导汇编过程的。 2、 伪指令由编译器处理,在程序中可有可无。

3、 编译器要通过执行伪指令才能对源程序进行相应的处理操作,完成编译工作。 4、 伪指令是汇编语言源程序不可缺少的组成部分。

(2)下列程序中,出现逻辑错误的是:____ 1、 assume cs:code code segment mov ax,2 add ax,ax mov ax,4c00h int 21h code end

2、 assume cs:code code segment mov ax,2 add ax,ax code ends end

3、 aume cs:code code segment mov ax,2 add ax,ax mov ax,4c00h int 21h code ends end

4、 assume cs:code code segment mov ax,2 add ax,ax mov ax,4c00h int 21h code ends

【王爽-汇编语言】第五章检测题分析 1.

在Intel8086环境下,对指令mov ax,[bx]描述错误的是_____。 1、 指令中,源操作数的段地址默认为ds中的内容

2、 指令中,源操作数的偏移地址为bx中的内容

3、 指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1) 4、 指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah) 2.

mov cx,5

s: mov ax,[bx] add bx,2 loop s

上面指令序列,当指令第一次执行到add bx,2时cx的值_____。 1、 5 2、 4 3、 3 4、 2

3.已知21000h处字单元的内容为 BE00H,对于如下程序: (1) mov ax,2000h (2) mov ds,ax (3) mov bx,1000h (4) mov ax,[bx] (5) inc bx (6) inc bx

(7) mov [bx],ax (8) inc bx (9) inc bx

(10) mov [bx],ax (11) inc bx

(12) mov [bx],al (13) inc bx

(14) mov [bx],al

程序执行后,内存中字单元2000:1005中的内容为______。 1、 00 2、 BE 3、 00BE 4、 0000

4.要计算123与456的乘积,应填在空白处的指令序列是_____。 assume cs:code code segment ____________ mov ax,4c00h int 21h

code ends end

1、 mov ax,1 mov cx,123 s: add ax,123 loop s 2、 mov ax,0 mov cx,456 s: add ax,456 loop s 3、 mov ax,1 mov cx,456 s: add ax,123 loop s 4、 mov ax,0 mov cx,456 s: add ax,123 loop s

5.对于如下程序 assume cs:code code segment

start:mov ax,code mov ds,ax mov ax,0020h mov es,ax mov bx,0 s:mov al,[bx] mov es:[bx],al inc bx loop s

mov ax,4c00h int 21h code ends end

下列说法正确的是______。

1、 指令mov ax,code改为mov ax,start对程序要实现的功能没有任何影响。 2、 程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。

3、 程序实现的功能是将程序的所有指令复制到内存中以0:200h为起始地址的一段内存空间中。

4、 程序实现的功能是用内存中以0:200h为起始地址的一段内存空间中的数据将程序的所有指令覆盖。

六章检测题分析

一、在Intel8086环境下,下列说法合理的是_____。

1、 汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。 2、 一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。

3、 如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间 存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。 4、 用DW和DD定义进行的数据,只能够以字为单位访问。

二、在某程序中,定义了262B的数据段data,那么程序载入内存,该段实际占用的内存空间是____B。 1、 256 2、 262 3、 272 4、 512

三、 assume cs:code code segment start: mov ax,3 jmp s1 s: mov bx,0 mov ax,bx s1: mov cx,3 s2: add ax,2 loop s2

s3: mov ax,4c00h int 21h code ends end s

上面代码执行s3处的指令之前,ax的值是_____。 1、 9 2、 6 3、 5 4、 2

四、assume cs:codesg codesg segment

dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h start:mov ax,0 mov ds,ax mov bx,0 mov cx,8 s:________ add bx,2 loop s

mov ax,4c00h

int 21h

codesg ends end start

要实现一次用内存0:0--0:15单元中的数据改写程序中定义的数据,添加到空白处的指令序列不能是____。

1、 mov cs:[bx],ds:[bx] 2、 mov dx,[bx] mov cs:[bx],dx 3、 push [bx] pop cs:[bx] 4、 mov ax,[bx] mov cs:[bx],ax

五、某程序有数据段、栈段和代码段三部分,如果加载后代码段的段地址为X,那么下列说法正确的是___。

1、 可以断定数据段的段地址是X-2。 2、 可以断定栈段的段地址是X-1。

3、 可以断定程序PSP区的段地址是X-10。

4、 确定数据段和栈段的段地址与X的关系,要视其大小和在其在源程序中定义的位置关系。

【王爽-汇编语言】第七章检测题分析

(1)生成EXE之后用Debug加载后,查看寄存器内容如下: ds=0b2d es=0b2d ss=0b3d cs=0b3e ip=0000 程序的起始地址的段地址是_____。 1、 0b3e 2、 0b2d 3、 0b3d 4、 0

(2)下列指令不能执行的是_____。 1、 mov ax,10h[bx] 2、 mov ax,10h[di] 3、 mov ax,[di+si] 4、 mov ax,10h[bx][si]

(3)对如下程序要实现将datasg段中的字符串\to masm!\复制到它后续的数据区中,

assume cs:codesg,ds:datasg datasg segment

db 'welcome to masm!' db '................' datasg ends codesg segment start: mov ax,datasg

mov ds,ax mov si,0 ________ ________ mov ax,4c00h int 21h codesg ends end start

在空白区域添加的指令序列合理的是_____。

1、

mov di,10h mov cx,10h s: mov ax,[si] mov [di],ax add si,2 add di,2 loop s 2、

mov di,10h mov cx,8 s: mov ax,[si] mov [di],ax inc si inc di loop s 3、

mov ss,ax mov sp,32 mov cx,8 s: mov ax,[si] push ax add si,2 loop s 4、

mov cx,8 s: mov ax,[si] mov [si+10h],ax add si,2 loop s

【王爽-汇编语言】第八章检测题分析

(1)下列指令序列不能够实现把内存地址0:202h中的字节数据送入al功能的是______。 1、

mov ax,0 mov ds,ax mov bx,202h mov al,[bx] 2、

mov ax,0 mov ds,ax mov bx,200h mov al,[bx+2] 3、

mov ax,0 mov ds,ax mov bp,202h mov al,[bp] 4、

mov ax,0 mov ds,ax mov bp,200h mov al,ds:[bp+2]

(2)下列指令不合理的是____。 1、 mov ds:[0ffh],al 2、 mov ds:[0ffh],ax 3、 mov ds:[0ffh],0ffh 4、 push ds:[0ffh]

(3)mov dx,0

mov ax,1001 mov bx,100 div bl

以上四条指令执行完后,ah值是_____。 1、 1 2、 10 3、 1001 4、 0

(4)对如下程序:

assume cs:codesg,ds:datasg datasg segment dd 123456h dw 789h,0h

datasg ends codesg segment start: mov ax,datasg mov ds,ax mov ax,ds:[0] mov dx,ds:[2] div word ptr ds:[4] mov ds:[6],ax mov ax,4c00h int 21h codesg ends end start

下列说法正确的是______。

1、 该程序实现的功能是计算123456h与78900h相除。 2、 该程序由于数据定义非法,无法通过编译。

3、 指令div word ptr ds:[4]可改为div near ptr ds:[4],不影响程序功能。 4、 指令div word ptr ds:[4]采用了直接寻址方式。

【王爽-汇编语言】第九章检测题分析

(1)下列能够改变CS:IP所指位置并能通过编译的指令是______。 1、 jmp short [bx] 2、 jne [bx]

3、 loop byte ptr [bx] 4、 jmp [bx]

(2)对于如下程序: assume cs:code data segment ?

data ends code segment start:mov ax,data mov ds,ax mov bx,0

jmp dword ptr [bx+2] code ends end start

若在指令jmp dword ptr [bx+2]执行后,要使程序再次从第一条指令开始执行,下列对data段中的数据的定义更合理的是______。 1、 dd 0,0,0 2、 dw 0,0,0

3、 dw 0,0,seg code 4、 dw 0,0,offset code

(3)有如下程序段,填写2条指令,使程序在运行中将s处的一条指令复制到s0处。 assume cs:code code segment s: mov ax,bx mov si,offset s mov di,offset s0 _______________ _______________ s0: nop nop code ends end s

1、 mov ax,cs:[si] mov cs:[di],ax 2、 mov ax,cs:[di] mov cs:[si],ax 3、 mov ax,[si] mov [di],ax 4、 mov ax,ds:[di] mov ds:[si],ax

(4)mov cx,0

s: mov ax,bx loop s

以上指令序列执行后mov ax,bx被执行了多少次_____。 1、 0 2、 256 3、 65535 4、 65536

(5)对于指令jmp dword ptr [bx+0dh]的说法错误的是______。 1、 该指令能够实现段间转移。

2、 该指令转移的目的地址是在指令明确给出的。 3、 该指令转移的目的地址被存放在内存空间中。 4、 该指令中运用的寻址方式是寄存器相对寻址。 分析:

(6)mov ax,2 mov cx,3 s: add ax,2 s1:loop s

mov di,offset s1 mov si,offset s3 mov ax,cs:[di]

mov cs:[si],ax mov ax,1 mov cx,3 s2: add ax,2 s3: nop nop

所有指令执行完后ax的值为_____。 1、 15 2、 7 3、 11 4、 3

【王爽-汇编语言】第十章检测题分析

(1)下列哪条指令不能够使CS:IP指向当前内存段范围内以s为标号的代码段______。 1、 jmp near ptr s 2、 jmp far ptr s 3、 call near ptr s 4、 call word ptr s

(2)下面指令执行后,ax中的数值为多少____ 内存地址 机器码 汇编指令 1000:0 b8 00 00 mov ax,0 1000:3 9a 09 00 00 10 call far ptr s 1000:8 40 inc ax 1000:9 58 s:pop ax add ax,ax pop bx add ax,bx 1、 1006h 2、 1010h 3、 0020h 4、 000ch

(3)补全程序,实现从内存1000:0处开始执行指令。 assume cs:code stack segment db 16 dup(0) stack ends code segment

start: mov ax,stack mov ss,ax mov sp,16 mov ax,____ push ax

mov ax,____ push ax retf

code ends end start

1、 cs,ip 2、 0,1000h 3、 1000h,0 4、 0,1000

(4)下面的程序执行后,ax中的数值为多少____ 内存地址 机器码 汇编指令 1000:0 b8 00 00 mov ax,0 1000:3 e8 01 00 call s 1000:6 40 inc ax 1000:7 58 s:pop ax 1、 3 2、 1 3、 4 4、 6

(5)对下列程序说法正确的是_____。 assume cs:codesg stack segment dw 10 dup (0) stack ends

codesg segment mov ax,4c00h int 21h

start: mov ax,stack mov ss,ax mov sp,20 mov ax,0 push cs push ax mov bx,0 retf

codesg ends end start

1、 程序中start之后的汇编指令不能得到执行。

2、 程序加载后stack段在内存中实际占用的内存空间是20b。 3、 程序的每一条指令都能获得执行,但不能正常返回。 4、 指令retf可替换为ret,并能够正常返回。

(6)某程序中定义了如下数据: data segment db \ db 'world' db \

db 'W','elcome' db \ db \

dw 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh dd 16 dup (0) data ends

下列说法正确的是______。

1、 该程序加载后其中的字符数据和数字数据在内存中都是以ASCII码的形式存放的。 2、 该程序加载后这组数据在内存中所占用实际空间是90HB。 3、 该数据段定义可放在该程序中end伪指令之前的任何位置。 4、 在编译阶段,该程序因如此定义数据而报错。

(7)下面的程序执行后,ax中的数值是多少____ 内存地址 机器码 汇编指令 1000:0 b8 00 00 mov ax,6 1000:2 ff d0 call ax 1000:5 40 inc ax 1000:6 mov bp,sp add ax,[bp]

(8)下面的程序执行完add ax,5时,ax中的数值为多少____ assume cs:code stack segment dw 8 dup(0) stack ends code segment

start: mov ax,stack mov ss,ax mov sp,16 mov ds,ax

mov ax,0 call word ptr ds:[0EH]

s: add ax,2 inc ax add ax,5 mov ax,4c00H int 21H code ends

end start

【王爽-汇编语言】第11章检测题分析

(1)下列指令对标志寄存器内容产生影响,但不会改变参与其执行过程的其它寄存器内容的是______。 1、 loop s 2、 cmp cx,0 3、 jcxz s 4、 div cx

(2)对于Intel8086cpu标志寄存器的说法正确的是_____。 1、 cpu执行每一条指令都有可能改变标志寄存器的内容。

2、 无符号数运算的进位或借位情况由cf标志位记录,有符号数运算的溢出情况由of标志位记录。 3、 当前指令对标志寄存器的影响为此指令的执行提供了所需的依据,对后续指令没有任何指导作用。

4、 所有的条件转移指令都要参考标志寄存器中的相关标志位。

(3)sub ax,ax mov ax,5 add ax,-3

以上程序执行完后,CF,OF的值是_____ 1、 0,0 2、 0,1 3、 1,0 4、 1,1

(4)mov ax,8 mov bx,3 cmp ax,bx

上面指令执行前ZF,PF的值是0,0,执行后ZF,PF的值是_____ 1、 0,1 2、 0,0 3、 1,0 4、 1,1

(5)

1. mov ax,0 2. push ax 3. popf

4. mov ax,0fff0h 5. add ax,0010h 6. pushf 7. pop ax

8. and al,11000101B 9. and ah,00001000B

上面指令执行后ax的值是____ 1、 845H 2、 8C5H 3、 45H 4、 C5H

本文来源:https://www.bwwdw.com/article/cd62.html

Top