jmp段间转移
assume cs:codecode segment
start: mov ax,0
jmp 1449H:0003H
mov ax,1
s: inc ax
code ends
end start
今天看了jmp指令这章的视频,想总节一下jmp指令的用法,发现在编译器里有jmp 段地址:偏移地址会报错,
left operand must have segment 如果我直接在debug了输入这条指令就可以运行,百度了一下,网上没有人
问这样的问题=。=求大神赐教。。。
start: mov ax,1449H
mov ds,ax
mov ax,0
mov bx,0003h
jmp ds:
在编译器中这样不会报错,效果是一样的
编译器和debug还是有区别的··· -搁浅的回忆 发表于 2013-3-9 16:55 static/image/common/back.gif
start: mov ax,1449H
mov ds,ax
mov ax,0
大神, 不对啊,我试了一下,编译时不报错,可是结果转移的不是我给他的数值
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0100H
jmp ds:
mov ax,1
s: inc ax
code ends
end start
执行完cs 没变,ip=b605不知道哪来的数值 無涯 发表于 2013-3-9 22:56 static/image/common/back.gif
大神, 不对啊,我试了一下,编译时不报错,可是结果转移的不是我给他的数值
assume cs:code
code segm ...
assume cs:code
code segment
start:
mov ax,2000H
mov ds,ax
mov bx,0100H
jmp ds:
mov ax,1
s: inc ax
code ends
end start
这是程序的全部代码吗?我怎么看不出来你想干什么?
这也不对啊,没有程序返回啊···
mov ax,4c00h
int 21h -搁浅的回忆 发表于 2013-3-9 23:05 static/image/common/back.gif
assume cs:code
code segment
start:
没打算干嘛 就是了解一下jmp指令的用法 把书翻翻,查查段间转移的执行过程吧,貌似段间转移时是用标号所对应的段地址和偏移地址修改cs和ip的,记得不大清楚了,错了莫怪!
↓《 发表于 2013-3-10 09:49 static/image/common/back.gif
把书翻翻,查查段间转移的执行过程吧,貌似段间转移时是用标号所对应的段地址和偏移地址修改cs和ip的,记得 ...
段间转移有很多种方式的, 無涯 发表于 2013-3-9 22:56 static/image/common/back.gif
大神, 不对啊,我试了一下,编译时不报错,可是结果转移的不是我给他的数值
assume cs:code
code segm ...
这样啊地址0100保存的是什么值,JMP就跳到这个值的位置 加 [ ]就是取内存地址里面的值了
不加[ ]就能是跳到0100 JMP这个指令很好理解的,不必纠结,因为以后的保护模式不能乱跳了{:5_109:}
页:
[1]