关于CS,IP 和jmp
小甲鱼老师的教程第二章第十一小节修改cs和ip中的数据这里,有个例题当指令执行到jmp bx 时他是怎么跳到cs=1000h ip=0000h的位置的呢?能给详细解说一下吗?其他的都能明白,就这个想不通也看不懂。
谢谢各位大神们{:1_1:}
最开始的时候cs=20000h ip=0000h
mov ax,0000
mov bx,ax
这样bx不就是0000了
jmp bx 就是jmp 1000:0000
至于cs为毛是1000看了下 一开始cs = 2000(你在二楼多打了个0) iP = 0 所以执行的是 20000h所在的代码
也就是 mov ax,6622h
然后当执行到jmp 1000:3 的时候 cs就变成了1000 ip 变成了3
就去执行mov ax,0000了 牡丹花下死做鬼 发表于 2014-1-23 17:08 static/image/common/back.gif
mov ax,0000
mov bx,ax
这样bx不就是0000了
这里我知道,我是不懂 jmp bx之后为什么跳到cs=1000h,ip=0000h这里,为什么不是跳到这之后的其他步骤上呢?
另一个也是关于 jmp的
监测点2.3中的题,说下面三条指令cpu几次修改ip?都在什么时候
mov ax,bx
sub ax,ax
jmp ax
前三步修改都知道,第四步jmp ax之后跳到第一行指令,运行完就结束了。我有两点不懂,
第一,jmp ax这为什么会跳到第一行指令而不是第二行呢?
第二 跳过去之后为什么只执行了一步就不继续执行了呢
yu457001 发表于 2014-1-23 17:25 static/image/common/back.gif
这里我知道,我是不懂 jmp bx之后为什么跳到cs=1000h,ip=0000h这里,为什么不是跳到这之后的其他步骤上呢 ...
cs = 1000 啊 jmp 0 不是跳到1000:0 跳去哪??
第二个问题 题目你没说清楚撒~~ 牡丹花下死做鬼 发表于 2014-1-23 18:01 static/image/common/back.gif
cs = 1000 啊 jmp 0 不是跳到1000:0 跳去哪??
第二个问题 题目你没说清楚撒~~
监测点2.3中的题,说下面三条指令cpu几次修改ip?都在什么时候
mov ax,bx
sub ax,ax
jmp ax
这个就是完整的题目了。 牡丹花下死做鬼 发表于 2014-1-23 17:08
mov ax,0000
mov bx,ax
这样bx不就是0000了
突然想起来,为什么第一个jmp跳转会成一个死循环,而第二个jmp跳过去就执行一句就停止了呢,关于这个跳转后的结果是书上说的,我看不出来到底哪一句是继续哪一句是停止 牡丹花下死做鬼 发表于 2014-1-23 18:01 static/image/common/back.gif
cs = 1000 啊 jmp 0 不是跳到1000:0 跳去哪??
第二个问题 题目你没说清楚撒~~
谢谢你的解答,又仔细看了一遍,明白了jmp为什么去执行ip0000了。但是为什么一个jmp跳过去执行了全部的指令成为一个死循环,而另一个跳过去执行了一步就停止了呢?能帮我说说这里吗?{:1_1:} yu457001 发表于 2014-1-24 10:54 static/image/common/back.gif
谢谢你的解答,又仔细看了一遍,明白了jmp为什么去执行ip0000了。但是为什么一个jmp跳过去执行了全部的指 ...
这个的话跳转到1000:0之后就会执行
mov ax,0123h
mov ax,0000
mov bx,ax
然后又是
jmp bx
又跳回去了所以是死循环 你说的另一个是什么??? 牡丹花下死做鬼 发表于 2014-1-24 11:25 static/image/common/back.gif
这个的话跳转到1000:0之后就会执行
mov ax,0123h
mov ax,0000
另一个就是这个,为什么这个没有一直循环下去,而是跳过去执行完那一句就停止了呢
监测点2.3中的题,说下面三条指令cpu几次修改ip?都在什么时候
mov ax,bx
sub ax,ax
jmp ax
这个就是完整的题目了。 yu457001 发表于 2014-1-24 13:12 static/image/common/back.gif
另一个就是这个,为什么这个没有一直循环下去,而是跳过去执行完那一句就停止了呢
监测点2.3中的题,说下 ...
哦
sub ax,ax
这时候就是把ax变成0是吧
然后是跳到cs:0是吧
你自己打开debug 输入 u 0看看
第一行代码是不是 int 20
就是中断 牡丹花下死做鬼 发表于 2014-1-24 13:33 static/image/common/back.gif
哦
sub ax,ax
这时候就是把ax变成0是吧
:mad:谢谢你哈,刚才搜了一下sub是无借位减法指令,昨天忘记搜了。呵呵,但是还有个问题我还没解决,今天把它解决掉。我还不知道那个汇编软件怎么样法。在汇编软件中编写的指令,会不会直接对我的电脑起作用呢?还是说汇编软件其实是个模拟环境,或者是个和真实电脑分开的容器呢?呵呵,白痴的问题,但是真的还是不明白。 yu457001 发表于 2014-1-24 13:46 static/image/common/back.gif
谢谢你哈,刚才搜了一下sub是无借位减法指令,昨天忘记搜了。呵呵,但是还有个问题我还没解决,今天 ...
debug是虚拟的 所以没关系的 怎么样都没事的 单cmd 或 你用masn编译的就不是虚拟的了啊 我只是路过打酱油的。
页:
[1]