Если обобщать, ссылку и запустить что-то вроде этого:Как работают JMP и CALL в ассемблере?
global _start
section .text
_start:
jmp message
proc:
...
message:
call proc
msg db " y0u sp34k 1337 ? "
section .data
- Как машина знает, где ему нужно прыгать? Я думаю, что «сообщение:» и «proc:» переведены на адреса.
- У "message:" и "proc:" есть абсолютные или относительные адреса?
- Если я скомпилировал программу на своем ПК и выполнил ее на другом ПК, как она может работать на другой машине? Я имею в виду адреса для «message:» и «proc:». Будет ли всегда другой адрес?
В архитектуре Intel _jmp_ обычно микрокодируется как движение с двумя педалями, а _call_ - через вокальный субпроцессор. –