我刚开始在学校学习组装,我们开始深入研究寄存器以及如何使用它们。我似乎无法理解的一点是指令指针如何获得下一条指令的地址?例如采取以下代码:
nop
pushl %ebp
movl %esp, %ebp
subl $4, %esp
在前面的代码中,指令指针在每行之后递增,我想知道它如何知道接下来要执行哪条指令(即,,,,...mov
等)?当我们第一次运行程序时,所有先前的指令是否都首先加载到 RAM 中,并且第一条指令的地址(在这种情况下)被自动加载到中,然后它只是一个接一个地遍历它们?还是我错过了什么?sub
push
nop
eip
任何帮助表示赞赏。