История изменений
Исправление SZT, (текущая версия) :
Можно использовать call, она одинаковая на обеих архитектурах, нужно только помнить, что относительная и шагает в пределах 2 GiB.
Это не совсем так. Есть инструкция call, которая может вызывать функцию, адрес которой в 64-битном регистре, без всяких там относительных смещений
int call64()
{
(*(void(*)())0xFFFFFFFFFFFFFFFFull)();
return 0;
}
call64():
subq $8, %rsp
movq $-1, %rax
call *%rax
xorl %eax, %eax
addq $8, %rsp
ret
Исходная версия SZT, :
Можно использовать call, она одинаковая на обеих архитектурах, нужно только помнить, что относительная и шагает в пределах 2 GiB.
Это не совсем так. Есть инструкция call, которая может вызывать фнукцию, адрес которой в 64-битном регистре, без всяких там относительных смещений