phantom-84 писал(а):
displacement - "смещение"; offset - "внутрисегментное смещение", а по нынешним временам - просто "адрес" (не линейный, но часто совпадающий с ним)
Ну, displacement и особенно offset далеко не только в IA-32 употребляются, и второй уже не один десяток лет переводится именно как смещение. Насчёт displacement'а стабильного перевода нет, встречается и так, и эдак, но если, например, на мэйнфреймах это пофиг (там есть displacement, но нет offset, если речь идёт об адресации), то на IA-32 оба термина используются вместе, почему и нуждаются в раздельном переводе. Буквальным переводом displacement, конечно, будет как раз смещение, но оно в силу устоявшейся практики прочто ассоциируется с offset'ом, почему я и перевожу его как "отклонение".
Что касается offset'а в случае с ПК, то его называют просто адресом давным-давно, задолго до появления 80386. В случае, если нет полной ясности из контекста, обычно уточняют: "ближний адрес" (near), чем отличают от "дальнего" (far), включающего не только offset, но и селектор сегмента (ну или просто сегмент, если кратко говорить, хотя это, естественно, разные вещи). А вот уточнение "внутрисегментное смещение" встречается крайне редко (во всяком случае, мне практически не попадалось).
Цитата:
pavia использовал термины "относительный адрес" и "абсолютный адрес" в соответствии с понятиями "относительная адресация" и "абсолютная адресация", что в принципе весьма логично (я только не понял вот этого: "По крайней мере не все"), т.к. к примеру в инструкциях процессора они кодируются по-разному
Утверждать не буду, всё ж давным-давно в доку на IA-32 не заглядывал, но разве там есть абсолютная адресация? Вроде бы есть только прямая (вроде MOV EAX, [1234h], где 1234h -- эффективный адрес = смещение (offset) в сегменте данных), а термин "абсолютная" не применяется. Так аналогичная адресация называется и на основной массе других архитектур, где она вообще имеется (хотя на PDP-11 она называется именно абсолютной, однако там технически это будет косвенная автоинкрементная адресация относительно счётчика команд). Относительной же адресацией обычно называется адресация, опирающаяся на значение счётчика команд (он только на IA-32 называется указателем инструкции IP, практически все остальные архитектуры его называют PC). Например, она используется в большинстве команд переходов: частью кода команды является смещение (offset), прибавляемое к значению счётчика команд, в результате чего получается адрес перехода.
Что же касается относительных и абсолютных адресов применительно к загружаемым модулям, то смысл у них вполне однозначен на всех платформах, с которыми мне приходилось сталкиваться. Первый термин означает адрес, значение которого в модуле дано относительно некоторой базы и которое должно корректироваться с учётом реального адреса загрузки, а второй -- адрес, чьё значение не зависит от местоположения модуля, и следовательно, не корректируется. Для первого нередко применяется термин "перемещаемый" (в принципе, я поддерживаю такое употребление, поскольку это позволяет не смешивать его с относительной адресацией в командах, хотя из контекста обычно и так ясно, о чём речь: о целых адресах или же о способах адресации), но вот "фиксированный" для второго, кажется, никогда не встречал -- только абсолютный и (редко) неперемещаемый.
В общем, как обычно: о терминах не спорят, о них договариваются :)