|
Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Инструкция STD
Команда STD в Ассемблере устанавливает флаг направления (DF). Синтаксис:
STD
У команды нет операндов. После выполнения команды флаг DF устанавливается в единицу. Значения остальных флагов не изменяются.
Флаг DF управляет поведением команд обработки строк (такими как CMPSB, CMPSW, LODSB, LODSW, MOVSB, MOVSW, STOSB, STOSW). При использовании этих команд для копирования строк значения регистров SI и DI автоматически увеличиваются или уменьшаются, в зависимости от состояния флага DF. Если этот флаг установлен в 1, то строки обрабатываются в сторону уменьшения адресов, если сброшен в 0, то наоборот. Подробнее о флагах см. здесь.
Ну и, соответственно, если вы хотите, чтобы строки обрабатывались в сторону уменьшения адресов, то вам потребуется установка флага DF.
Значения регистров SI и DI увеличиваются на размер обрабатываемого операнда (1, 2 или 4 байта), если флаг DF сброшен. Если установлен, то, соответственно, уменьшаются.
Рассказ про обработку строк в ассемблере не входит в мои планы (может как-нибудь расскажу об этом в примерах), поэтому здесь только простой пример использования STD:
.model tiny
.code
ORG 100h
start:
STD ; Теперь DF = 1
RET ; Выйти из программы
END start
Напоследок, как всегда, о происхождении аббревиатуры STD.
STD - это SeT DF (установить флаг DF).
|
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |