. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  第九章测试题目:下列能够改变CS:IP所指位置并能通过编译的指令是  [待解决] 回复[ 4次 ]   点击[ 553次 ]  
zjxiaogaoren
[帖 主]   [ 发表时间:2009-05-11 20:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2009-04-20 20:16
下列能够改变CS:IP所指位置并能通过编译的指令是______。  
 1、  jmp short [bx]  
 2、  jne [bx]  
 3、  loop byte ptr [bx]  
 4、  jmp [bx]  
为什么是3,怎么分析的?
根据书本我只得出五种:
jmp为无条件转移指令,可以只改IP,也可以同时改cs:ip

jmp short s
jmp near ptr s
jmp far ptr s
jmp word ptr [...]   ;段内转移
jmp dword ptr [...] ;段间转移,高地址是CS,低地址是IP 
好像没有jmp [...]这样的形式
后来网上还看到了jmp s这样的形式
很糊涂了,书上不够全面呀,初学者这么分析呢?难道排除法?书上jne指令也没介绍,汗死人。

网上还发现:
JMP - Unconditional Jump

        Usage:  JMP     target
        Modifies flags: None

        Unconditionally transfers control to "label".  Jumps by default
        are within -32768 to 32767 bytes from the instruction following
        the jump.  NEAR and SHORT jumps cause the IP to be updated while FAR
        jumps cause CS and IP to be updated.

                                                        Clocks
                   Operands                     808x  286    386   486

        rel8  (relative)                        15    7+m    7+m    3
        rel16 (relative)                        15    7+m    7+m    3
        rel32 (relative)                         -     -     7+m    3
        reg16 (near, register indirect)         11    7+m    7+m    5
        reg32 (near, register indirect)          -     -     7+m    5
        mem16 (near, mem indirect)             18+EA  11+m  10+m    5
        mem32 (near, mem indirect)             24+EA  15+m  10+m    5
        ptr16:16 (far, dword immed)              -     -    12+m    17
        ptr16:16 (far, PM dword immed)           -     -    27+m    19
        ptr16:16 (call gate, same priv.)         -    38+m  45+m    32
        ptr16:16 (via TSS)                       -   175+m   TS   42+TS
        ptr16:16 (via task gate)                 -   180+m   TS   43+TS
        mem16:16 (far, indirect)                 -     -    43+m    13
        mem16:16 (far, PM indirect)              -     -    31+m    18
        mem16:16 (call gate, same priv.)         -    41+m  49+m    31
        mem16:16 (via TSS)                       -   178+m  5+TS  41+TS
        mem16:16 (via task gate)                 -   183+m  5+TS  42+TS
        ptr16:32 (far, 6 byte immed)             -     -    12+m    13
        ptr16:32 (far, PM 6 byte immed)          -     -    27+m    18
        ptr16:32 (call gate, same priv.)         -     -    45+m    31
        ptr16:32 (via TSS)                       -     -     TS   42+TS
        ptr16:32 (via task state)                -     -     TS   43+TS
        m16:32 (far, address at dword)           -     -    43+m    13
        m16:32 (far, address at dword)           -     -    31+m    18
        m16:32 (call gate, same priv.)           -     -    49+m    31
        m16:32 (via TSS)                         -     -    5+TS  41+TS
        m16:32 (via task state)                  -     -    5+TS  42+TS
有这么多,但是看不太懂,有高手分析下吗?
zjxiaogaoren
[第1楼]   [ 回复时间:2009-05-11 20:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2009-04-20 20:16
为什么是4,前面说错了
lyh1984
[第2楼]   [ 回复时间:2009-06-16 18:25 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-25 09:01
因为 4只改写IP,而又不会出界
dintal
[第3楼]   [ 回复时间:2011-02-23 20:03 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-01-16 23:48
同样疑惑,难道又是要先预习的?
关键是我编译也不通过
shicong
[第4楼]   [ 回复时间:2011-05-05 10:39 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2011-04-09 19:34
因为1可能超界,所以选4
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved