Адресное поле команды

Изучаю операционные системы и столкнулась с определением относительной адресации - адрес получается сложением адресного поля команды и адреса самой этой команды. Все не могу понять, что такое адресное поле команды. Можете пожалуйста объяснить.


Ответы (1 шт):

Автор решения: Fat-Zer

адрес получается сложением адресного поля команды и адреса самой этой команды. Все не могу понять, что такое адресное поле команды

Скорей всего подразумевается смещение, просто число, которое является частью команды.

Например команда (в синтаксисе nasm) jmp $+5 представляется опкодом (на x86) eb 03.

eb здесь представляет саму операцию, а 03 — операнд, смещение на которое надо совершить прыжок. 03, а не 05 — это просто особенности синтаксиса ассемблера т.к. он предполагает смещение относительно начала команды, а действия с IP выполняются после загрузки команды, откуда и получается разница в 2 байта — длина команды.

Собственно на x86 относительная адресация применяется исключительно в командах перехода, что в принципе и логично: данные так не очень удобно адресовать...

→ Ссылка