. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  测试题不解,请大家帮忙指点,附分析过程  [待解决] 回复[ 4次 ]   点击[ 536次 ]  
debugk
[帖 主]   [ 发表时间:2008-08-22 19:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-13 10:30
对于指令jmp dword ptr [bx+0dh]的说法错误的是______。
 1、 该指令能够实现段间转移。 
 2、 该指令转移的目的地址是在指令明确给出的。 
 3、 该指令转移的目的地址被存放在内存空间中。 
 4、 该指令中运用的寻址方式是寄存器相对寻址。 

在我的机器上debug“jmp dword ptr [bx+0dh]”显示为'FF670D',运行后CS不变、IP变为 [bx+0dh]的内容,2错误。但1似乎也不对。这个指令按P169的定义是段间转移,但是理论上CS=[DS:(BX+d+2)],IP=[DS:(BX+d)],这里为什么CS不变呢?

对于如下程序: 
    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 
编译显示3.4都能满足要求,无论数据是“dw 0,0,seg code”还是“dw 0,0,offset code”时,debug将“jmp dword ptr [bx+2]”其解析为"jmp far [bx+2]",二进制为FF6F02。
那么3和4哪个数据定义更加合理?why?


下列能够改变CS:IP所指位置并能通过编译的指令是______。4
 1、 jmp short [bx] 
 2、 jne [bx] 
 3、 loop byte ptr [bx] 
 4、 jmp [bx] 
1和4在debug中最后都被编译成"jmp [bx]",二进制形式都为"FF27"效果也一致。为什么选4?
lwbfq
[第1楼]   [ 回复时间:2008-08-22 19:34 ]   [引用]   [回复]   [ top ] 
荣誉值:56
信誉值:0
注册日期:2008-01-19 13:58
不知道楼主的计算机到底怎么了,三道题在我的机子上试验了一下都和你的描述不一样,第一题分明能够改变CS,而楼主却说CS不变,那唯一的一种可能就是CS的值和DS:[BX+0DH+02]的内容一样。
第二题seg code是取code 短的短地址,offset是取code段的偏移地址,解析的代码当然一样,题目考得是它跳转到哪里?数据不一样,跳转的位置就不一样。
第三题: jmp short [bx]我的机子上就通不过编译。
debugk
[第2楼]   [ 回复时间:2008-08-22 20:33 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2008-06-13 10:30
再次测试了一次:
第二题测试后表明3和4不同,也许是之前看错。

但是
jmp dword ptr [bx+0dh]在debug下运行后CS不变、IP变;在masm中CS、IP均变化。

jmp short [bx]在debug下输入无错误提示、编译后与jmp [bx]一致;在masm中提示错误。

难道在debug中short被过滤掉了?
jikeyuan1
[第3楼]   [ 回复时间:2011-02-23 13:29 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-02-07 15:40
不懂  ~~~~~~
hongdan0714jin
[第4楼]   [ 回复时间:2011-05-06 23:13 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-03-27 21:54
测试题???。。。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved