这是混乱的根源: movl(%edx),%eax 这会将%eax的值视为地址,转到该地址并将其内容复制到%eax,
记住这一点然后看: jmp *(%edx)由于前面使用了括号(在mov指令中取消引用),那么星号是否是双重引用的一种形式?
......这个指令的表现如何? - > jmp(%edx)
......或者是什么 jmp *%edx 与 jmp%edx ?
答案 0 :(得分:0)
*
表示绝对跳跃,而星号的缺席意味着相对跳跃。
见http://sourceware.org/binutils/docs-2.17/as/i386_002dMemory.html#i386_002dMemory
但是,我不知道汇编程序是否推断出间接的绝对跳转,即使*
缺失,也不知道是否存在间接相对跳跃的不可能性。