汇编语言4
总分:100 考试时间:100分钟
一、单项选择题
1、补全编程,利用jcxz指令,实现在内存2000H段中查第一个值为0的字节,到后,将它的偏移地址存储在dx中。 assume cs:code code segment start: mov ax,2000h mov ds,ax mov bx,0 s: mov ch,0 ( ) jcxz ok inc bx jmp short s ok: mov dx,bx mov ax ,4c00h int 21h code ends end start(正确答案:A)
A、mov cl,[bx] ;B、mov cx,bx;C、mov cl,bx。
2、用Debug查看内存,结果如下: 2000:1000 BE 00 06 00 00 00 ...... 则此时,CPU执行指令: mov ax,2000h mov es,ax jmp dword ptr es:[1000h] 后,(cs:ip)= 。 (正确答案:D)
A、0600:00BEH;B、1000H:2000H;C、0000H:0006H;D、0006H:00BEH 。
3、对于指令jmp dword ptr [bx+0dh]的说法错误的是______。(正确答案:B)
A、该指令能够实现段间转移 ;B、该指令转移的目的地址是在指令明确给出的;C、该指令转移的目的地址被存放在内存空间中;D、该指令中运用的寻址方式是寄存器相对寻址。
4、mov cx,0 s: mov ax,bx loop s 以上指令序列执行后mov ax,bx被执行了多少次_____。(正确答案:D)
A、0 ;B、256 ;C、65535 ;D、65536 。
5、下列能够改变CS:IP所指位置并能通过编译的指令是______。(正确答案:D)
A、jmp short [bx] ;B、 jne [bx];C、loop byte ptr [bx];D、jmp [bx]。
6、补全编程,利用loop指令,实现在内存2000H段中查第一个值为0的字节,到后,将它的偏移地址存储在dx中。 assume cs:code code segment start: mov ax,2000h mov ds,ax mov bx,0 s:mov cl,[bx] mov ch,0 ( ) inc bx loop s ok:dec bx mov dx,bx mov ax,4c00h int 21h code ends end start(正确答案:A)
A、inc cx ;B、add cx,2;C、dec cx;D、sub cx, 2。
7、下列哪条指令不能够使CS:IP指向当前内存段范围内以s为标号的代码段______。(正确答案:B)
A、jmp near ptr s;B、jmp far ptr s;C、call near ptr s;D、call word ptr s。
8、下面的程序执行后,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 (正确答案:B)
A、3;B、6;C、1;D、4。
9、对下列程序说法正确的是_____。 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 (正确答案:B)
A、程序中start之后的汇编指令不能得到执行 ;B、程序加载后stack段在内存中实际占用的内存空间是20b;C、程序的每一条指令都能获得执行,但不能正常返回;D、指令retf可替换为ret,并能够正常返回。
10、下列指令中,与MOV BX,OFFSET ARRAY指令等价的指令是( )。(正确答案:A)
A、LEA BX,ARRAY B、LDA BX,ARRAY C、MOV BX,ARRAY D、STA BX,ARRAY
11、sub ax,ax mov ax,5 add ax,-3 以上程序执行完后,CF,OF的值是_____。(正确答案:A)
A、0,0 ;B、0,1;C、1,0;D、1,1。
12、8086CPU执行算术运算指令不会影响的标志位是( )。(正确答案:D)
A、溢出标志;B、符号标志;C、零标志;D、方向标志。
13、下列标志位中,( )是可以通过指令直接设置的。(正确答案:D)
A、ZF;B、CF;C、SF;D、IF。
14、补全程序,实现从内存1000:0000处开始执行指令。 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, 0 push ax retf code ends end start(正确答案:A)
A、1000h ;B、0;C、10000h;D、1000。
二、多项选择题
1、程序如下。 assume cs:code data segment dw 2 dup (0) data ends code segment start: mov ax,dtat mov ds,ax mov bx,0 jmp word ptr [bx+1] code ends end start 若要使jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?(正确答案:BCD)
A、db 0;B、db 3 dup (0);C、dw 2 dup (0);D、dd 0。
2、下列指令,执行后一定会使得程序发生转移的指令有( )。(正确答案:ABD)
A、JMP;B、CALL;C、JNZ;D、INT。
3、程序如下。 assume cs:code data segment dd 12345678h data ends code segment start: mov ax,data mov ds,ax mov bx,0 mov [bx], ; mov [bx+2], cs jmp dword ptr ds:[0] code ends end start 补全程序,使用jmp指令执行后,CS:IP指向程序的第一条指令。(正确答案:
ABC)
A、mov [bx], word ptr 0 ; offset指令是什么意思B、mov [bx], offset start; C、mov [bx], bx;
4、下列指令对标志寄存器内容产生影响,但会改变参与其执行过程的其它寄存器内容的是( )。(正确答案:ACD)
A、loop s;B、cmp cx,0;C、jcxz s;D、div cx。
5、某程序中定义了如下数据: data segment db "Hello" db 'world' db "!" db 'W','elcome' db "to","masm!" db "Bye",'b','ye!' dw 0,1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh dd 16 dup (0) data ends 下列说法不正确的是( )。 (正确答案:ABD)
A、该程序加载后其中的字符数据和数字数据在内存中都是以ASCII码的形式存放的;B、该程序加载后这组数据在内存中所占用实际空间是90HB;C、该数据段定义可放在该程序中end伪指令之前的任何位置;D、在编译阶段,该程序因如此定义数据而报错。
6、对于Intel8086cpu标志寄存器的说法不正确的是( )。(正确答案:ACD)
A、cpu执行每一条指令都有可能改变标志寄存器的内容;B、无符号数运算的进位或借位情况由cf标志位记录,有符号数运算的溢出情况由of标志位记录;C、当前指令对标志寄存器的影响为此指令的执行提供了所需的依据,对后续指令没有任何指导作用;D、所有的条件转移指令都要参考标志寄存器中的相关标志位。
三、判断题
1、CPU执行 jmp short 标号 指令时并不需要转移的目的地址,只需要知道转移的位移就行了。(正确答案:A)
A、是B、否
2、操作符offset在汇编语言中是由编译器处理的符号,它的功能是取得标号的偏移地址。(正确答案:A)
A、是B、否
3、ret指令用栈中的数据,修改IP的内容,从而实现远转移。(正确答案:B)
A、是B、否
4、所有的有条件转移指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。(正确答案:A)
A、是B、否
5、loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址。(正确答案:A)
A、是B、否
6、call 与 ret 指令共同支持了汇编语言编程中的模块化设计。。(正确答案:A)
A、是B、否
7、使用mul做乘法的时候,乘积部分只能在AX中。(正确答案:B)
A、是B、否
8、call 指令不能实现短转移,除此之外,call指令实现转移的方法和 jmp 指令的原理相同。(正确答案:A)
A、是B、否
9、call指令转去执行子程序之前,call指令的地址将存储在栈中。(正确答案:B)
A、是B、否
10、mov、push、pop等指令的执行不影响标志寄存器。(正确答案:A)
A、是B、否
11、CF是对无符号数运算有意义的标志位; 而OF是对有符号数运算有意义的标志位。 (正确答案:A)
A、是B、否
12、flag 和其他寄存器一样,都是整个寄存器具有一个含义。(正确答案:B)
A、是B、否
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论