这是混淆的根源: movl (%edx), %eax这将 %eax 的值视为一个地址,去它并将其内容复制到 %eax,
牢记这一点,然后查看: jmp *(%edx)由于早先使用了括号(作为 mov 指令中的取消引用),那么星号是双重取消引用的一种形式吗?
...以及该指令的执行方式有何不同?--> jmp (%edx)
...或者 jmp *%edx与jmp %edx怎么样?
表示绝对跳跃,而*
没有星号则表示相对跳跃。请参阅http://sourceware.org/binutils/docs-2.17/as/i386_002dMemory.html#i386_002dMemory
但是,我不知道汇编程序是否从间接中推断出绝对跳转,即使*
它丢失了,或者它对间接相对跳转的不可能性大喊大叫。