请教在nasm中怎么实现段间跳转
请问在nasm中如何实现段间跳转?比如我要跳到段INITSEG中。跳转后继续执行如下的代码:go:指令1指令2我应该如
请问在nasm中如何实现段间跳转?
比如我要跳到段INITSEG中。跳转后继续执行如下的代码:
go:
指令1
指令2
我应该如何写?
我尝试过jmp INITSEG:go,但是好像没有执行的go的代码。
我在网上看到一个例子,好像可以,但是他写的是jmp INITSEG:0x002a
我不知道这个0x002a是如何得到的?请各位指教一下。
谢谢!
[解决办法]
[解决办法]nasm可以,masm需要构造
[解决办法]nasm对跳转的设计很人性化. 一般来说nasm中跳转标明长度就可以了. 在实模式跨入保护模式的那条经典jmp中, Linux的代码是直接编的机器码, nasm加一个dword就可以了.
如果jmp这种方法解决不了的话, 你可以试一试把地址压栈, 然后执行一个retf就可以了
[解决办法]nasm远跳指令就是JMP BASE:OFFSET,一个段需要用[section]作为开头,这样它才会重新以此为几点计算偏移。
[解决办法][解决办法]打错字了,因该是base_go,这里需要换算一下得到go
[解决办法]jmp INITSEG:go
jmp INITSEG:go-INITSEG