监测点9.1的第一题有点问题
下面是我的代码:assume cs:code
data segment
db 0,0,0,4h
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
jmp word ptr
code ends
end start
在data段中,我定义了db 0,0,0,4h
确实可以实现ip置0,但是我定义dw 0,0,0,4h居然也可以正常运行,还是可以使ip置0,这是为什么呢?
好吧。。。我犯傻了。。。指向第三个字节所在处。。是0就行。。 问下 是指向第2个字节处把? BX=0 BX+1=1 就是你定义的0 0 第2个0把? 我错了,前面jmp word 这个word 是个字型数据 也就是说 从1开始到2 2个字节读法就是 2 1的读取里面的值,也就是说 把IP变成0000的话 就要把1和2这个2个字节变成0,0 吃屎哥 发表于 2013-8-15 22:39 static/image/common/back.gif
我错了,前面jmp word 这个word 是个字型数据 也就是说 从1开始到2 2个字节读法就是 2 1的读取里面的值, ...
一开始可能不习惯。12h这样高的数字,在内存中从低到高是2,1排列的。 CS:IP指向第一条指令,第一条指令时data中的数,还是mov ax,data这一条,如果是这条,DS:就不是data中的0002 0003这个地址吧!! dddos 发表于 2014-8-11 00:23
CS:IP指向第一条指令,第一条指令时data中的数,还是mov ax,data这一条,如果是这条,DS:就不是data中的000 ...
草,word ptr,段内转移,浪费我半小时!散了吧
页:
[1]