LDS/LES/LFS/LGS/LSS
(Load pointer into ds/es/fs/gs/ss segment register)
Загрузка сегментного регистра ds/es/fs/gs/ss указателем из памяти
Схема команды: | lds приемник,источник les приемник,источник lfs приемник,источник lgs приемник,источник lss приемник,источник |
Назначение: получение полного указателя в виде сегментной составляющей и смещения.
Алгоритм работы:
Алгоритм работы команды зависит от действующего режима адресации (use16 или use32):
если use16, то загрузить первые два байта из ячейки памяти источник в 16-разрядный регистр, указанный операндом приемник. Следующие два байта в области источник должны содержать сегментную составляющую некоторого адреса; они загружаются в регистр ds/es/fs/gs/ss;
если use32, то загрузить первые четыре байта из ячейки памяти источник в 32-разрядный регистр, указанный операндом приемник. Следующие два байта в области источник должны содержать сегментную составляющую, или селектор, некоторого адреса; они загружаются в регистр ds/es/fs/gs/ss.
Состояние флагов после выполнения команды:
выполнение команды не влияет на флаги |
Применение:
Таким образом, с помощью данных команд в паре регистров ds/es/fs/gs/ss и приемник оказывается полный адрес некоторой ячейки памяти. Это обстоятельство можно использовать, к примеру, при работе с цепочечными командами, где существуют жесткие соглашения на размещение адресов обрабатываемых строк. Помните, что любая загрузка сегментного регистра приводит к обновлению соответствующего теневого регистра (см. урок 16). Смотрите также описание команды cmps с примером использования.
См. также: уроки 5, 7, 11, команды и операторы ассемблера и