Команды STOS, STOSB, STOSW, STOSD предназначены для сохранения значения регистра AL, AX, EAX в область памяти по заданному адресу.

 

Команда STOS
Синтаксис: STOS op1
Операнды: op1 - m8, m16, m32
Назначение: Запись в строку
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда STOS на самом деле не является командой процессора. Когда в тексте программы встречается эта команда, компилятор вычисляет размерность ее операнда и на основании вычислений подставляет на ее место одну из реальных команд процессора STOSB, STOSW или STOSD.
Ограничения: Нет
Примеры:
stos	es:str2
Команда STOSB
Синтаксис: STOSB
Операнды: Нет
Назначение: Запись байта в строку
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда STOSB сохраняет регистр AL в ячейке памяти по адресу ES:DI. После выполнения команды, регистр DI увеличивается на 1, если флаг DF = 0, или уменьшается на 1, если DF = 1.
Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI.
Ограничения: Нет
Примеры:
mov	di,offset str1
cld
stosb
Команда STOSW
Синтаксис: STOSW
Операнды: Нет
Назначение: Запись слова в строку
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда STOSW сохраняет регистр AX в ячейке памяти по адресу ES:DI. После выполнения команды, регистр DI увеличивается на 2, если флаг DF = 0, или уменьшается на 2, если DF = 1.
Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI.
Ограничения: Нет
Примеры:
mov	di,offset str1
cld
stosw
Команда STOSD
Синтаксис: STOSD
Операнды: Нет
Назначение: Запись двойного слова в строку
Процессор: 8086+
Флаги: Не изменяются
Комментарий: Команда STOSD сохраняет регистр EAX в ячейке памяти по адресу ES:DI. После выполнения команды, регистр DI увеличивается на 4, если флаг DF = 0, или уменьшается на 4, если DF = 1.
Если команда используется в 32-разрядном режиме адресации, то используется регистр EDI.
Ограничения: Нет
Примеры:
mov	di,offset str1
cld
stosd