Cтраница 1
Адреса сегментов ограничены 16 бит, поэтому в определении адреса сегмента не используются младшие 4 бит. Поэтому DEF SEC & H1700 определяет адрес сегмента, начинающегося с & Н17000 байт или 92К байт. [1]
Адрес сегмента принято называть базой, а относительный номер ячейки в сегменте - смещением ( или сдвигом) относительно этой базы. Если каким-либо образом зафиксировать базу используемого сегмента, то в командах достаточно указывать не полные адреса ячеек, принадлежащих этому сегменту, а только их смещения относительно этой базы, для чего достаточно иметь в командах более короткое поле адреса, состоящее из т двоичных разрядов. [2]
Адрес сегмента ( Лсегм) - это начальный адрес 64-килобайтового поля, внутри которого находится адресуемая ячейка. [3]
О вектор-адрес имеет форму адрес сегмента: адрес смещения; адрес сегмента может быть определен в явном виде шестнадцатеричным кодом или указанием соответствующего сегментного регистра; сегмент команд может быть задан по умолчанию; адрес смещения описывается в явном виде шестнадцатеричным кодом. [4]
![]() |
Пример конвейерного выполнения команд. [5] |
Сегментные регистры хранят базовые ( начальные) адреса сегментов памяти: кодового сегмента CS, в котором содержится программа; стекового сегмента SS; сегмента данных DS; дополнительного сегмента ES, в котором обычно содержатся данные. Наличие сегментных регистров обусловлено разделением памяти на сегменты и используемым способом формирования адресов памяти. [6]
Очевидно, что программист может после получения адресов сегментов во входном и выходном буферах сразу же переслать очередную запись без обработки из входного буфера в выходной, а затем выполнить обработку в выходном буфере. [7]
Адреса сегментов ограничены 16 бит, поэтому в определении адреса сегмента не используются младшие 4 бит. Поэтому DEF SEC & H1700 определяет адрес сегмента, начинающегося с & Н17000 байт или 92К байт. [8]
О вектор-адрес имеет форму адрес сегмента: адрес смещения; адрес сегмента может быть определен в явном виде шестнадцатеричным кодом или указанием соответствующего сегментного регистра; сегмент команд может быть задан по умолчанию; адрес смещения описывается в явном виде шестнадцатеричным кодом. [9]
В представленной на рис. 14.12 а и 14.126 программе поиск адреса сегмента таблицы выполняется по ключу сегмента с помощью команды сдвига. Метки PRETAB и TABLE используются в соответствии со структурой только что приведенной таблицы. Обычно ключ искомого сегмента заносится произвольным образом с помощью какого-либо устройства ввода-вывода. В данном примере ключи заданы как константы, чтобы продемонстрировать их преобра зование в прямые адреса. [10]
Если в операционной системе применяются постраничная организация памяти или регистры граничных адресов сегментов, то эта же структура должна сохраняться и для дисплея. [11]
![]() |
Сравнение определений подразделов данных в языке. [12] |
КАТАЛОГ-РАБОТ замещается сегментом-указателем ( рис. 12.3), в котором содержатся адреса соответствующих сегментов СЛУЖАЩИЙ. [13]
В предпоследней строке каждой подпрограммы стоит второй оператор DEF SEG, передающий интерпретатору Бейсика адрес сегмента памяти, где будет выполняться вызывающая программа. Роль этого оператора очевидна: он отменяет действие первого DEF SEG, с помощью которого произошел переход на сегмент, содержащий образ экрана. Если не произвести вовремя переключение сегментов, то при выполнении некоторых операторов и функций, в том числе BLOAD, РЕЕК и РОКЕ, интерпретатор может обратиться к области памяти, не предусмотренной программистом. [14]
В результате выполнения макрокоманды PUT в режиме указания управляющая система помещает в регистр 1 адрес очередного сегмента выходного буфера, где программист может строить очередную логическую запись. При выдаче каждой очередной макрокоманды PUT предыдущая запись освобождается для пере-дачи на внешнее устройство. Самая последняя запись передается по макрокоманде CLOSE при закрытии набора данных. [15]