|
Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Инструкция LDS
Инструкция LDS в Ассемблере загружает указатель, используя регистр ES. Синтаксис:
LDS REG, MEM
После выполнения этой команды флаги не изменяются.
Команда LDS REG, MEM выполняет те же действия, что и две следующие команды:
MOV REG, WORD PTR MEM MOV DS, WORD PTR MEM+2
Инструкция LDS считывает из памяти по указанному адресу двойное слово (32 бит), содержащее указатель (полный адрес какой-либо ячейки памяти), и загружает младшую половину указателя (то есть относительный адрес) в указанный в команде регистр общего назначения, а старшую половину указателя (то есть сегментный адрес) в регистр DS.
В качестве первого операнда (REG) команды LDS указывается регистр общего назначения, а в качестве второго (MEM) - ячейка памяти с двухсловным содержимым. Указатель, содержащийся в этой ячейке, может быть адресом как процедуры, так и поля данных.
А теперь ещё раз кратко:
LDS REG, MEM
Эта команда получает двойное слово, адрес которого находится в МЕМ. Затем первые 16 разрядов из этой области памяти загружаются в регистр REG, а вторая часть двойного слова - в регистр DS.
То есть в памяти по адресу MEM содержится указатель (полный адрес), который мы можем разделить на СЕГМЕНТ:СМЕЩЕНИЕ, и с помощью команды LDS записать сегмент в DS, а смещение в указанный в команде регистр (REG).
В описании инструкции MOV как раз был пример, где загрузка указателя выполняется с помощью двух команд. Сейчас, когда мы знаем об инструкции LDS, мы можем сократить этот пример на одну команду, то есть вместо двух команд MOV использовать одну команду LDS:
.model tiny
.code
ORG 100h
start:
LDS BX, VIDEO ; ES = B800h (память VGA), BX = 72Eh
MOV CL, 'A' ; CL = 41h (ASCII-код).
MOV CH, 01001110b ; CH = атрибуты цвета
; (желтый текст на красном фоне).
MOV [BX], CX ; [0B800h:015Eh] = CX.
RET ; Выйти из программы
VIDEO DW 72Eh
DW 0B800h
END start
Напоследок, как всегда, о происхождении аббревиатуры LDS.
LDS - это Load DS (загрузить DS).
См. также команду LES.
|
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |