如果有人可以向我解释“:”在 jmp 指令中的用途,我将不胜感激,下面是来自 wiki 的 wiki
JMP 0x89AB, I know that this one is to jump to that position
JMP 0xACDC:0x5578 what is that?
如果有人可以向我解释“:”在 jmp 指令中的用途,我将不胜感激,下面是来自 wiki 的 wiki
JMP 0x89AB, I know that this one is to jump to that position
JMP 0xACDC:0x5578 what is that?
如果不参考 wiki,我只能猜测,但我敢说这与 8088/86/286/386 处理器和它们的“分段”地址空间有关。
基于 x86 的处理器采用分段内存架构工作。
基本上内存是使用两个部分来寻址的。段地址和偏移地址。':' 之前的部分是段地址,':' 之后的部分是偏移地址。
0x1234:0x5678 样式地址是分段地址。它的意思是0x1234 * 0x10 + 0x5678
。你给出的例子是0xB2338
.
那是一个很大的跳跃。真实模式和保护模式的含义不同:
segment * 16 + offset
.offset
所描述的段内。offset
被忽略,并执行适当的操作(例如:任务切换)。我猜 0xACDC 是代码段地址,而 0x5578 是代码内的偏移量。