《汇编语言》试卷
一、单选题(每题1分,共20分)
1.CPU在读取指令时,实际读到的是什么?( )
A.伪指令和汇编指令所对应的字符串
B.用汇编语言写的源程序中的信息
C.由一系列二进制位组成的信息
D.汇编指令所对应的字符串
2.关于编译和连接,错误的说法是( )。
A.编译产生的*.obj文件不能在操作系统下直接运行
B.连接产生的*.exe文件里面没有伪指令
C.编译可以检查出语法错误
D.连接可以检查出逻辑错误
3.CPU传递到地址总线上的地址是( )。
A.逻辑地址
B.偏移地址
C.物理地址
D.段地址
4.一条将立即数赋值给寄存器的指令,在执行的前一刻,指令中的立即数在( )中。
A.通用寄存器
B.端口
C.内存
D.CPU内部的指令缓冲器
5.关于8086CPU的几个寄存器,正确的说法是( )。
A.可将BX当成两个8位寄存器,在偏移地址范围为0~255时,可以用“mov ax,[bl]”来实现将内存中的数据读到ax中
B.可以用“byte ptr”实现将SI当成两个8位寄存器使用
C.可将AX、BX、CX、DX当成8个8位寄存器使用
D.AX、ah、al是不同的寄存器,指令“add al,bl”的执行不会影响AX的值
6.对于16位结构的CPU,其应有的特征不包括( )。
A.寄存器最大宽度是16位
B.寄存器与运算器之间的通路为16位
C.运算器一次处理的数据的最大宽度为16位
D.地址总线宽度是16位
7.下列与8086CPU寻址相关的说法,错误的是( )。
A.8086CPU有20根地址总线,它的寻址能力为1MB
B.一个物理地址可以对应多个段地址与偏移地址
C.因为段寄存器是16位,所以一个段最大为64KB
D.CPU内部有一个能合成20位地址的地址加法器
8.8086CPU读取、执行指令的过程是( )。
①从CS:IP指向的内存空间读取指令,将指令放入指令缓冲器
②执行指令,转到步骤①
③IP指向下一条指令
A.①、②
B.①、③、②
C.若指令是转移指令,过程为①、③、②,不是则过程为①、②
D.若指令是转移指令,过程为①、②,不是则过程为①、③、②
9.对于8086CPU,错误的指令是( )。
A.mov ax,ds
B.push [bx]
C.inc [bx]
D.add bp,2
10.以下指令执行后,SP的值为( )。
mov sp,0
push ss
A.0
B.0fffeh
C.2
D.内存ss:0处的数据的值
11.关于循环结构,下列说法正确的是( )。
A.实现内存地址连续的8个字型数据的累加,循环结构与顺序结构相比,代码占得空
间可以更少
B.循环结构与顺序结构相比,实现相同的功能可以执行更少的代码
C.只有使用loop指令才能实现循环结构
D.双层循环结构中的所有汇编指令被执行的次数相同
12.关于loop指令,错误的说法是( )。
A.loop指令的跳转范围是-128~127
B.CX=10时,执行loop指令,IP的值一定减小
C.CX=0时,执行loop指令后,CX=0ffffh
D.CX=1时,执行loop指令,IP的值不变
13.对于8086CPU,下列关于段的说法,错误的是( )。
A.一个段的起始地址必须是16的整数倍
B.在源程序中定义一个段,在运行程序时,CPU不会因此定义而知道这个段的大小。
C.一块内存空间可以既是代码段,又是数据段。
D.CPU将某个段用做栈,是因为assume指令将其与SS寄存器相关联
14.用debug的e命令向b810:0010处写入数据,接着用d命令查看,发现b810:0010处并没有刚刚写入的数据,其原因是( )。
A.此处用于存储系统时间,一直在自动更新
B.debug存在延时,第二次查看即可看到用e命令写入的数据
C.此处处于ROM空间,不可以被改变
D.此处处于显存空间,当屏幕刷新时,此处的数据被更新了
15.( )的功能与“mov al,’d’”的 功能相同。
A. mov ax,’d’
B. mov al,’a’+3
C. mov al,’A’+3
D. or al,’d’
16.关于汇编语言中的指令,正确的说法是( )。
A.汇编语言中的标号属于伪指令
B.汇编指令一定有对应的机器码
C.伪指令由编译器识别,编译器将其转化为对应的机器码
D.“+”一般会被编译成add指令
17.以下程序运行时,“sub ax,masm”执行后,ax的值是( )。
assume cs:code
masm segment
dw 5 dup(‘a’,’b’,’c’)
masm ends
code segment
start: mov ax,code
sub ax,masm
mov ax,4c00h
int 21h
code ends
end start
A.15
B.1
C.2
D.3
18.对于8086CPU的标志寄存器,下列说法错误的是( )。
A.标志寄存器是16位的
B.无法通过一条汇编指令将标志寄存器的所有位都更新
C.这个寄存器中的有些位没有任何含义
D.cmp指令能够改变标志寄存器的值
19.关于中断处理程序,正确的说法是( )。
A.BIOS中断例程固化在ROM中
B.DOS中断例程固化在ROM中
C.BIOS中断例程对应的中断向量表表项,只能读取,不能写入
D.中断处理程序不能够再调用别的中断处理程序
20.关于中断,错误的说法是( )。
A.CPU执行int n指令时,不必通过数据总线读取中断类型码。
B.中断向量表一个表项的长度为4byte
C.外中断都可以被屏蔽
D.按下按键,或抬起按键都会触发9号中断
二、单选题(每题2分,共20分)
1.关于div指令,错误的说法是( )。
A.执行div指令可能触发中断
B.div指令的除数既可以是16位,也可以是8位
C.div指令的被除数或存放在DX和AX中,或存放在AX中
D.div指令的运算结果有商和余数两部分
2.关于debug的使用,错误的说法是( )。
A.Debug将程序加载到内存后,不执行任何命令前,IP的值一定为零
B.通过debug可以查看标志寄存器某些位的值
C.Debug将程序加载到内存后,不执行任何命令前,CX的值有可能是1024
D.T命令有可能一次执行一条以上的指令
3.关于0:200~0:2ff这块内存空间,正确的说法是( )。
A.其为ROM空间
B.其为CMOS RAM空间
C.其是中断向量的存储空间,但可能是空闲的
D.其中存储着BIOS提供的开机引导程序
4.下列指令,一定不会使标志寄存器发生变化的是( )。
A.int 21h
B.jmp ax
C.cmp ax,bx
D.sub ax,ax
5.关于串传送指令,错误的说法是( )。
A.只用一条movsb指令,即可以将一个内存单元里的数据传送到另一个内存单元
B.movsb指令执行后,SI与DI的值可能会增加,也可能会减小
C.传送可以以字节为单位进行,也可以以字为单位进行
D.如果在执行“movsb”之前,CX的值是10,“movsb”将重复执行10次
6.用debug的d命令查看内存,结果如下,则下列指令执行后,CS和IP的值依次是( )。
1000:0010 63 69 66 69 65 73 20 61……
mov ax,1000H
mov es,ax
jmp dword ptr es:[0012H]
A.6669 6573
B.6966 6965
C.7365 6966
D.1000 0012
7.对于标志寄存器相关位的描述,错误的是( )。
A.mov al,1
add al,127
这两条指令执行后,OF=1,发生溢出;虽然逻辑结果为正,但SF却为1
B.mov al,1
add al,0ffh
这两条指令执行后,OF=0,CF=1
C.“inc ax”不影响标志寄存器的CF位
D.s: mov ax,8f00h
cmp ax,5
jb s
int 21h
这段程序执行过程中,SF一直为1
8. mov ax,4c00h
int 21h
这段程序的作用是( )。
A.调用21h号中断例程的4c00h号功能
B.告诉编译器程序到此结束
C.返回DOS
D.前三个选项都不对
9.下列说法正确的是( )。
A.iret指令可以描述为:
popf
pop cs
pop ip
B.mov al,1
add al,0ffh
上面两条指令执行后,(AX)=0
C.用debug进行调试时,用p命令可以一次执行多条汇编指令
D.call指令不能通过位移进行跳转
10.关于8086CPU提供的栈机制,错误的说法是( )。
A.任意时刻,SS:SP指向栈顶
B.8086CPU只记录栈顶,一个程序运行时,其对栈空间的使用是否越界,需要程序设计者考虑
C.用栈来暂存数据时,数据出栈的顺序一定要与入栈的相反
D.键盘缓冲区是一种特殊的栈
三、单选题(每题3分,共30分)
1.实现一个子程序,在屏幕上显示一个由六个“*”构成的如下图形:
*
* *
* * *
关于此子程序,错误的说法是( )。
A.可以不使用循环结构
B.可以只用ret指令、栈指令和逻辑运算指令
C.可以只用一个寄存器存储“*”的ASCII码在显存中的偏移地址
D.写在指令中的寄存器不可以只是段寄存器
2.关于中断过程中CPU对TF、IF的设置,错误的说法是( )。
A.若设置TF=1,则单步中断会不断地触发下去
B.设置IF=0,但仍可将中断处理程序设计成可以响应外中断的程序
C.若设置TF=1,将影响debug的运行
D.由于设置IF=0,在中断例程中无法用int指令调用可屏蔽中断的中断例程
3.使用直接定址表实现程序的作用不包括( )。
A.不用进行比对,即可从一组数据中读出与某一给定数值相等的数据
B.用更少的存储空间实现功能相同的程序
C.用更少的指令实现功能相同的程序
offset命令D.使程序易于扩展
4.对于以下程序,正确的说法是( )。
assume cs:code
code segment
mov ax,0
call s
db 40h
s:
mov ax,offset s
mov bp,sp
sub ax,[bp]
add ax,30h
pop bp
mov bp,0b800h
mov ds,bp
mov ds:[160*8+80],al
mov ax,4c00h
int 21h
code ends
end
A.这个程序无法正确返回
B.“pop bp”执行后,bp中存放着“mov ax,offset s”指令的偏移地址
C.这个程序可以在屏幕上显示出“1”这个字符
D.这个程序在屏幕上显示出什么信息,取决于40h对应的汇编指令是什么
5.关于程序运行,正确的说法是( )。
A.程序加载到内存后,其所占的内存空间的大小,就是用户定义的段的大小的总和
B.一个程序在运行的过程中,其指令不一定在内存里
C.DOS给程序分配内存空间,在程序向DOS提出相关申请后进行
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论