当前位置:文档之家› 汇编语言程序设计试题

汇编语言程序设计试题

汇编语言程序设计试题一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

每小题2分,共50分)1.CPU发出的访问存储器的地址是( A )A.物理地址B.偏移地址C.逻辑地址D.段地址2.使计算机执行某种操作的命令是( B )A.伪指令B.指令C.标号D.助记符3.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=(A)A. 1400HB. 77F8HC. 0000HD. 0FFFFH4.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。

目前,微机中普遍采用的是( C)码。

A. BCD码B.二进制码C.ASCII码D.十六进制码5.下列关于8086CPU的工作原理的描述错误的是__C___。

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

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

C.任意时刻,CS:IP指向的内容即是此刻CPU正在执行的指令。

D.传送指令能够更改所有通用寄存器的内容。

6.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是(C)A.12CFBH B.12B6BH C.12C5BH D.12BFEH7. 16位结构的CPU 不一定具备的特性是(D)。

A. 运算器一次最多可以处理16位的数据B. 寄存器的最大宽度为16位C. 寄存器和运算器之间的通路为16位D. 地址总线为16根8. 下列指令的书写正确的是(C)。

A. push alB. mov cs:[0],ds:[10]C. pop siD. mov ds:[0],29.在DEBUG工具中,显示寄存器内容的命令是( D )。

A. GB. DC. TD. R10. 能够将ax中的内容送到内存0000:0200H处的指令序列是(D)。

A.mov ds,0mov bx,200hmov [bx],axB.mov ax,200hmov ds,axmov bx,0mov [bx],axC.mov ax,20hmov ds,axmov bx,0mov [bx],axD.mov bx,20hmov ds,bxmov bx,0mov [bx],ax11.若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为(C)。

A. 20098HB. 20102HC. 200FEHD. 20100H12.执行下列指令后AL寄存器中的值是(A)MOV AL, 0BFHOR AL, 0FCHA.0FFHB. 0ACHC. 0DCHD. 0BBH13. 已知(DS)=2000H,(BX)=1256H,(SI)=528FH,则执行指令JMP BX后,IP 寄存器的内容是(A)。

A. 1256HB. 2000HC. 3256HD. 528FH14.在程序执行过程中,IP寄存器中始终保存的是(B)A.上一条指令的首地址 B.下一条指令的首地址C.正在执行指令的首地址 D.需计算有效地址后才能确定地址15.8088/8086存储器分段,每个段不超过(D)A.64K个字 B.32k个字节C.1兆个字节 D.64k个字节16.关于伪指令相关描述错误的是(B)。

A.伪指令没有对应的机器码,只用来指导汇编过程的。

B.伪指令由编译器处理,在程序中可有可无。

C.编译器要通过执行伪指令才能对源程序进行相应的处理操作,完成编译工作。

D.伪指令是汇编语言源程序不可缺少的组成部分。

17.下列关于堆栈的说法,错误的是(D)A.以“先入后出”为原则。

B.栈区最高地址单元的前一个单元为栈底。

C.运行中SP寄存器动态跟踪栈顶位置。

D.压栈和弹出都是以字节为单位。

18.关于8086/8088微机系列,下列说法哪个是正确的(D)A.一个存储单元由16个二进制位组成,简称字。

B.当存储一个字数据时,低字节放高地址位,高字节放低地址位。

C.在内存中,可以无限分配段,且段的大小不受限制。

D.段与段之间可以邻接,也可以重叠。

19.1KB的存储器有_B个存储单元?A.1000 B. 1024 C. 512 D. 25620. 下列程序中,出现逻辑错误的是( B)。

A. assume cs:codecode segmentmov ax,2add ax,axmov ax,4c00hint 21hcodeendB. assume cs:codecode segmentmov ax,2add ax,axcode endsendC. aume cs:codecode segmentmov ax,2add ax,axmov ax,4c00hint 21hcode endsendD. assume cs:codecode segmentmov ax,2add ax,axmov ax,4c00hint 21hcode ends21. 对于如下程序assume cs:codecode segmentstart:mov ax,codemov ds,axmov ax,0020hmov es,axmov bx,0s:mov al,[bx]mov es:[bx],alinc bxloop smov ax,4c00hint 21hcode endsend下列说法正确的是(C)。

A.指令mov ax,code改为mov ax,start对程序要实现的功能没有任何影响。

B.程序不能通过编译,因为在loop指令之前,没有对寄存器cx进行设定。

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

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

22.在Intel8086环境下,下列说法合理的是(C)。

A.汇编语言程序载入内存后处于64K空间以外的数据和指令将无法使用和执行。

B.一个数据段命名为data,此标号代表这个数据段在内存中的起始地址。

C.如果载入的程序没有返回语句,那么当程序代码执行完毕,将继续读取后续内存空间存储的指令到CPU内部作为指令执行下去,直到遇到返回指令为止。

D.用DW定义进行的数据,只能够以字为单位访问。

23. 关于8086、8088微机系列,下列说法哪个是正确的(D)。

A)一个存储单元由16个二进制组成,简称字。

B)当存储一个字数据时,低字节放高地址位,高字节放低地址位。

C)在内存空间中,可以无限分配段,且段得大小不受限制。

D)段与段之间可以邻接,也可以重叠。

24.生成EXE之后用Debug加载后,查看寄存器内容如下:ds=0c3e es=0c3e ss=0b4e cs=0b4f ip=0000程序的起始地址的段地址是(B)。

A. 0c3eB. 0c4eC. 0c4fD. 025. 在Intel8086环境下,对指令mov ax,[bx]描述错误的是(D)。

A.指令中,源操作数的段地址默认为ds中的内容B.指令中,源操作数的偏移地址为bx中的内容C.指令执行后,(al)=((ds)*16+(bx)),(ah)=((ds)*16+(bx)+1)D.指令执行后,((ds)*16+(bx))=(al),((ds)*16+(bx)+1)=(ah)二、填空题(每空2分,共30分)1.通常所说的计算机系统包括__硬件__和__软件____两大部分。

2. 8086CPU把1MB存储器分成若干逻辑段,段不能起始于任意地址,必须位于_______个字节的边界上。

每个段最大为_______字节,8086cpu中设置了4个寄存器用来存放逻辑段的段地址,它们是:_______、_______、______、_______。

3.若要源程序从标号START开始执行,源程序结束伪指令的格式为 ___END START_____。

4.8086的地址总线有20根,寻址范围为______1M_____字节。

5.汇编语言源程序需经过_____编译______程序汇编,____连接____程序连接才能生成可执行文件。

6.十进制数369转换成8位二进制数为01110001,转换成对应的十六进制数为__ _71H____。

7. mov cx,5s: mov ax,[bx]add bx,2loop s上面指令序列,当指令第一次执行到add bx,2时cx的值_5___。

三、阅读程序题(每题5分,共10分)1.已知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中的内容为__000H___。

2. assume cs:codecode segmentstart: mov ax,3jmp s1s: mov bx,0mov ax,bxs1: mov cx,3s2: add ax,2loop s2s3: mov ax,4c00hint 21hcode endsend s上面代码执行到s3处的指令之前,ax的值是__6__。

3. mov dx,0mov ax,1001mov bx,100div bx以上四条指令执行完后,ax值是__1___。

四、完善程序题(每题5分,共10分)1.完善下列程序:实现一次用内存0:0--0:15单元中的数据改写程序中定义的数据。

assume cs:codesgcodesg segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hstart:mov ax,0mov ds,axmov bx,0mov cx,8S:mov ax,ds:[bx]Mov cs:[bx],axadd bx,2loop smov ax,4c00hint 21hcodesg endsend start2.完善下列程序:实现计算234与567的乘积。

assume cs:codecode segmentmov ax,0mov cx,234s:add 567loop smov ax,4c00hint 21hcode endsend。

相关主题