WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

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

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

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

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

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

Примечания

  1. Dandamudi, Sivarama P., 1955-. Introduction to Assembly language programming : for Pentium and RISC processors. — 2nd ed. — New York: Springer, 2005. — С. 76. — 1 online resource (xxiii, 690 pages) с. ISBN 0387271554.
  2. IBM Knowledge Center (англ.). www.ibm.com. Проверено 8 января 2018.
  3. Однократная передача данных (LDR, STR). www.gaw.ru. Проверено 8 января 2018.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии