. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  【检测点】9.1 这样的结果也是正确的  [待解决] 回复[ 3次 ]   点击[ 594次 ]  
zhouxiao
[帖 主]   [ 发表时间:2010-05-05 16:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-01 09:12
代码如下
assume cs:code
data segment
        db 1,0,0
data ends
code segment
        start:        mov ax,data
                mov ds,ax
                mov bx,0
                jmp word ptr [bx+1]
                
                mov ax,4c00h
                int 21h
code ends
end start
说明:由于只要保证IP的值为0,并且取到的值为字的长度就行了
所以无论db 1,0,0,还是db 2,0,0都应该正常的
验证情况如下
-r
AX=0000  BX=0000  CX=0020  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1502  ES=1502  SS=1512  CS=1513  IP=0000   NV UP EI PL NZ NA PO NC
1513:0000 B81215        MOV     AX,1512
-t

AX=1512  BX=0000  CX=0020  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1502  ES=1502  SS=1512  CS=1513  IP=0003   NV UP EI PL NZ NA PO NC
1513:0003 8ED8          MOV     DS,AX
-t

AX=1512  BX=0000  CX=0020  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1512  ES=1502  SS=1512  CS=1513  IP=0005   NV UP EI PL NZ NA PO NC
1513:0005 BB0000        MOV     BX,0000
-t

AX=1512  BX=0000  CX=0020  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1512  ES=1502  SS=1512  CS=1513  IP=0008   NV UP EI PL NZ NA PO NC
1513:0008 FF6701        JMP     [BX+01]                            DS:0001=0000
-t

AX=1512  BX=0000  CX=0020  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000
DS=1512  ES=1502  SS=1512  CS=1513  IP=0000   NV UP EI PL NZ NA PO NC
1513:0000 B81215        MOV     AX,1512
-
versaariel
[第1楼]   [ 回复时间:2010-05-05 20:15 ]   [引用]   [回复]   [ top ] 
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14
挺好的^-^
yiday
[第2楼]   [ 回复时间:2010-07-22 01:11 ]   [引用]   [回复]   [ top ] 
荣誉值:5
信誉值:0
注册日期:2009-09-24 17:56
理解了,呵呵,谢谢,我刚看到这一章
84404037
[第3楼]   [ 回复时间:2010-10-22 10:41 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-09-25 21:54
assume cs:code 
data segment 
dw start
data ends 
code segment 
        start:        mov ax,data 
                mov ds,ax 
                mov bx,0 
                jmp word ptr [bx+1] 
                 
                mov ax,4c00h 
                int 21h 
code ends 
end start 
我和你的理解不一样。。我想只要把偏移改成start就行了。。不必要定值。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved