汇编网首页登录博客注册
mqmelon的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
友情链接

[2007-11-05 22:18] 第9章检测题

1、有如下程序段,填写2条指令,使程序在运行中将s处的一条指令复制到s0处。 
    assume segment 
    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 
解析:
第一个选项正确;而第二个反相;第三个看似正确,其实si\di寄存器默认段寄存器为ds,故不能省略,所以错误;第四个是很容易排除的.

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
解析:如果要程序从第一行处重新执行,而jmp语句表明此处为段间转移,故一定要把cs的段地址放入到ds段的内存中,而第一、二选项都没有实现这一点,而第四个选项看似好象对的,但实际上是把偏移量放入内存,却没有放入段地址,而此处要明确的是:seg code 的含义是指段地址

3、下列能够改变CS:IP所指位置并能通过编译的指令是______。 
 1、 jmp short [bx] 
 2、 jne [bx] 
 3、 loop byte ptr [bx] 
 4、 jmp [bx] 
解析:jmp short 后只能跟标号;jne也只能跟标号;loop也只能跟标号
4、  mov cx,0 
    s: mov ax,bx 
    loop s 
    以上指令序列执行后mov ax,bx被执行了多少次_____。 
 1、 0 
 2、 256 
 3、 65535 
 4、 65536
解析:粗看似乎此程序中的loop s不能执行,但是,实际上,loop s在执行后对cx中的内容进行减1操作,而减1前cx中为0,故,第一次loop s 运行后cx中内容变为FFFF(65535),则mov ax,bx指令在cx内容变化后被执行65535次,加上第1次的执行,即结果为65536次。

5、对于指令jmp dword ptr [bx+0dh]的说法错误的是______。 
 1、 该指令能够实现段间转移。 
 2、 该指令转移的目的地址是在指令明确给出的。 
 3、 该指令转移的目的地址被存放在内存空间中。 
 4、 该指令中运用的寻址方式是寄存器相对寻址。 
解析:此题中第2 选项错误。因为目的地址要视内存中内容而定。
评论次数(2)  |  浏览次数(1397)  |  类型(汇编作业) |  收藏此文  | 

[  Wednesday   发表于  2007-11-05 23:03  ]

公布答案了,哈哈。

[  rotapple   发表于  2011-06-23 16:56  ]

却没有放入段地址,而此处要明确的是:seg code 的含义是指段地址
=================================
好像书上并没有说seg的用法啊??

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码