Jump to content

Офсет (информатика)

(Перенаправлено с относительного адреса )

В информатике смещение указывающее расстояние ( смещение внутри массива или другого структуры данных объекта представляет собой целое число, ) между началом объекта и данным элементом или точкой, предположительно внутри того же объекта. [ 1 ] : 100–103  Концепция расстояния действительна только в том случае, если все элементы объекта имеют одинаковый размер (обычно задаваемый в байтах или словах ).

Например, если A представляет собой массив символов, содержащий "abcdef", четвертый элемент, содержащий символ 'd' имеет смещение, равное трем от начала A.

На языке ассемблера

[ редактировать ]

В компьютерной инженерии и низкоуровневом программировании (например, языке ассемблера ) смещение обычно обозначает количество адресных ячеек, добавленных к базовому адресу , чтобы добраться до определенного абсолютного адреса . только базовая единица адреса, обычно 8-битный байт В этом (исходном) значении смещения для указания размера смещения используется . В этом контексте смещение иногда называют относительным адресом .

В инструкциях IBM System/360 12-битное смещение, встроенное в некоторые инструкции, обеспечивало диапазон от 0 до 4096 байт. Например, в инструкции безусловного перехода (X'47F0Fxxx') 12-битное шестнадцатеричное смещение xxx обеспечивает смещение байтов от базового регистра (15), к которому осуществляется переход. Нечетное смещение вызвало бы проверку программы (если только сам базовый регистр также не содержал нечетный адрес), поскольку инструкции должны были быть выровнены по границам полуслова, чтобы выполняться без программного или аппаратного прерывания .

Предыдущий пример описывает косвенный способ обращения к ячейке памяти в формате сегмент:смещение. Например, предположим, что мы хотим обратиться к ячейке памяти 0xF867. Один из способов добиться этого — сначала определить сегмент с начальным адресом 0xF000, а затем определить смещение 0x0867. Кроме того, нам также разрешено сдвигать шестнадцатеричный сегмент, чтобы достичь конечного абсолютного адреса памяти. Здесь следует отметить, что мы можем достичь нашего окончательного абсолютного адреса разными способами.

Смещение не всегда относительно базового адреса модуля, например: если у вас есть класс и вы хотите получить атрибут «цвет» этого класса, смещение может быть 0x0100, но это смещение необходимо добавить к смещение самого класса, а не базовый адрес. Если смещение класса равно 0xFF881, а базовый адрес — 0x0A100, то для получения атрибута «цвет» оба смещения добавляются к базовому адресу. 0x0A100 (базовый) + 0xFF881 (класс) + 0x0100 (атрибут). В конечном итоге адрес атрибута будет 0x109A81.

См. также

[ редактировать ]
  1. ^ Керниган, Брайан В .; Ричи, Деннис М. (1988). Язык программирования C (2-е изд.). Энглвуд Клиффс, Нью-Джерси: Прентис Холл. ISBN  0-13-110362-8 . ОСЛК   318301687 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 40a3c56ec6340eee6debb61e68d1dd96__1707284880
URL1:https://arc.ask3.ru/arc/aa/40/96/40a3c56ec6340eee6debb61e68d1dd96.html
Заголовок, (Title) документа по адресу, URL1:
Offset (computer science) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)