jmp *.L4 (,%rdx,8)
我正在进行一项将其作为无条件跳转之一的作业。 我的问题是:
答案 0 :(得分:2)
这只是间接跳过一张桌子。正如您所知,.L4(,%rdx,8)
是一个内存地址,值为.L4 + rdx * 8
。在64位模式下,指针是8个字节,因此是缩放因子。 rdx
只是表格中条目的索引。
*
除了静音汇编程序警告之外没有任何区别:)你应该使用*
进行间接跳转,但是当汇编程序能够弄明白时,它会发出警告。 (,%rdx,8)
是一个死的赠品,这是间接跳跃。如果您有jmp *.L4
,则需要*
将其与jmp .L4
区分开来。前者是间接跳过.L4
的指针,而后者只是直接跳转到.L4
。