Адресное поле команды
Изучаю операционные системы и столкнулась с определением относительной адресации - адрес получается сложением адресного поля команды и адреса самой этой команды. Все не могу понять, что такое адресное поле команды. Можете пожалуйста объяснить.
Ответы (1 шт):
адрес получается сложением адресного поля команды и адреса самой этой команды. Все не могу понять, что такое адресное поле команды
Скорей всего подразумевается смещение, просто число, которое является частью команды.
Например команда (в синтаксисе nasm) jmp $+5 представляется опкодом (на x86) eb 03.
eb здесь представляет саму операцию, а 03 — операнд, смещение на которое надо совершить прыжок. 03, а не 05 — это просто особенности синтаксиса ассемблера т.к. он предполагает смещение относительно начала команды, а действия с IP выполняются после загрузки команды, откуда и получается разница в 2 байта — длина команды.
Собственно на x86 относительная адресация применяется исключительно в командах перехода, что в принципе и логично: данные так не очень удобно адресовать...