Инструкция 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).



Первые шаги в программирование Первые шаги в программирование

Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su