. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第9章检测题  [待解决] 回复[ 9次 ]   点击[ 1080次 ]  
caoheqian
[帖 主]   [ 发表时间:2007-11-25 14:50 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
对于指令jmp dword ptr [bx+0dh]的说法错误的是__2____。 
 1、 该指令能够实现段间转移。 
 2、 该指令转移的目的地址是在指令明确给出的。 
 3、 该指令转移的目的地址被存放在内存空间中。 
 4、 该指令中运用的寻址方式是寄存器相对寻址。 

对于如下程序: 
    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段中的数据的定义更合理的是___3___。 
 1、 dd 0,0,0 
 2、 dw 0,0,0 
 3、 dw 0,0,seg code  
 4、 dw 0,0,offset code 

有如下程序段,填写2条指令,使程序在运行中将s处的一条指令复制到s0处。 3
    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 

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

    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的值为___2__。 
 1、 15 
 2、 7 
 3、 11 
 4、 3 

测试完毕!答对3道题目!本章节测试没有通过,建议对本章进一步学习、牢固。
fishboy
[第1楼]   [ 回复时间:2007-11-25 16:06 ]   [引用]   [回复]   [ top ] 
荣誉值:283
信誉值:0
注册日期:2007-06-26 11:42
有如下程序段,填写2条指令,使程序在运行中将s处的一条指令复制到s0处。 3 
    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  
===================================
提示:注意你的段地址应该是什么??还有第一句 “assume segment”是楼主不小心写错了吧?!!


mov cx,0  
    s: mov ax,bx  
    loop s  
    以上指令序列执行后mov ax,bx被执行了多少次___1__。  
 1、 0  
 2、 256  
 3、 65535  
 4、 65536  
===========================
提示:对loop指令的执行过程有待进一步了解和掌握,看看书吧。要仔细!!
caoheqian
[第2楼]   [ 回复时间:2007-11-28 20:07 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
首先谢谢fishboy的回复.
1.检测题是我复制下来的,“assume segment”不是楼主不小心写错了!! !
2.书上第172页9.8节:loop指令
   loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址,.对IP的修改范围都为:-128~127.
  ...
  如果(cx)=0,什么也不做...
  确实不理解,请高手指点.
zysong
[第3楼]   [ 回复时间:2007-11-29 16:56 ]   [引用]   [回复]   [ top ] 
荣誉值:19
信誉值:0
注册日期:2007-07-05 17:25
这个题和LOOP指令的执行原理有关系。 
loop指令是先把CX寄存器的值减1然后再判断是否是0。如果cx是0再减1不就成-1了,-1的补码是0xFFFF了。楼主现在知道了吧。
caoheqian
[第4楼]   [ 回复时间:2007-12-05 06:52 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2007-09-30 21:53
谢谢zysong.
书上P93写得很清楚,不过确实没太理解,经高手点拨,终于开窍,感觉也上了一个层次.
另外,这个道理好像和stack也有相似的地方.请参阅P56.
有意思.

提示:对loop指令的执行过程有待进一步了解和掌握,看看书吧。要仔细!!
============================================================
再次谢谢fishboy,
不过如果不是zysong点破这层窗户纸的话,再看100遍恐怕也还是不理解.
dhsxs
[第5楼]   [ 回复时间:2008-03-27 19:45 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-02 21:51
3、 dw 0,0,seg code   
 4、 dw 0,0,offset code

这两个有点不明白???请教高手
xiaochong
[第6楼]   [ 回复时间:2008-03-28 10:50 ]   [引用]   [回复]   [ top ] 
荣誉值:45
信誉值:0
注册日期:2007-05-05 09:01
SEG    是取得标号的段地址值。  

offset 是取得标号的偏移地址
dhsxs
[第7楼]   [ 回复时间:2008-03-28 11:53 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-03-02 21:51
SEG    是取得标号的段地址值。  

offset 是取得标号的偏移地址
------------------
回复:thanks 终于明白了这道题
duckgaga
[第8楼]   [ 回复时间:2008-04-14 20:46 ]   [引用]   [回复]   [ top ] 
荣誉值:44
信誉值:0
注册日期:2008-04-11 13:33
唉,真晕,知道loop会把0-1以后进行判断,结果却忘了loop为短转移了,结果选了个65536,真是……看样子要很细心才行……
yuanliangding
[第9楼]   [ 回复时间:2010-02-05 17:21 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2010-01-30 14:38
回复:[第8楼]
------------------
这个想法是错的。
移转移是指令的移动位移,不是可以移多少次。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved