jmpq
- это просто безусловный переход к заданному адресу. 'Q' означает, что мы имеем дело с четырьмя словами (длиной 64 бита).
*0x402680(,%rax,8)
: это способ записи адреса в сборке x-86. Вы правы, говоря, что обычно перед первой запятой стоит регистр, но вы все равно следуете тем же правилам, если регистр не указан.
Формат работает следующим образом:
D(reg1, reg2, scalingFactor)
где D обозначает смещение. Смещение в основном просто целое число. reg1
- первый или базовый регистр. reg2
- это второй регистр, а scalingFactor
- это один из 2, 4, 8 (возможно, даже 1, но я не уверен в этом). Теперь вы можете получить свой адрес, просто добавив значения следующим образом: Смещение + (значение в reg1
) + scalingFactor
* (значение в reg2
).
Я не совсем уверен, для чего предназначена звездочка перед адресом, но я предполагаю, что это означает, что значение смещения сохраняется по этому адресу.
Надеюсь, это поможет.