Флаги не меняются.
Команда:
STOSB
Логика
(ES:DI) = AL if DF = 0 DI = DI + 1 else DI = DI - 1
Команда STOSB копирует байт, расположенный в AL, в место памяти, на которое указывает ES:DI, а также инкрементирует или декрементирует DI (в зависимости от состояния признака направления DF), чтобы подготовиться к копированию AL в следующий байт памяти.
Операнды | Такт байты (слова) | Обращения | Байты | Пример |
нет операндов | 11 | 1 | 1 | STOSB |
(повтор) | 9+10/rep | 1/rep | 1 | REP STOSB |
Пример.
Если команду записи в строку использовать в сочетании с префиксом REP, то такая команда будет полезна для инициализации блока памяти; следующий пример иллюстрирует инициализацию стобайтового блока памяти, расположенного по адресу BUFFER, в 0 :
MOV AL,0 ;значение,которое присваиваем ;при инициализации LEA DI,BUFFER ;загружаем стартовый адрес блока памяти MOV CX,100 ;размер блока памяти CLD ;будем двигаться в прямом направлении REP STOSB ;сравните эту строку с ПРИМЕРом для STOS