S
STC Установка флага переноса
Команда stc устанавливает флаг переноса CF в регистре флагов. Команда не имеет параметров и не воздействует на остальные флаги процессора.
Пример:
stc; Флаг CF устанавливается
STD Установка флага направления
Команда STD устанавливает флаг направления DF в регистре флагов, определяя тем самым обратное направление выполнения строковых операций (в порядке убывания адресов элементов строки). Команда не имеет параметров и не воздействует на остальные флаги процессора.
Пример:
std; Флаг направления устанавливается
STI Установка флага прерывания
Команда STI устанавливает флаг разрешения прерываний IF в регистре флагов, разрешая все аппаратные прерывания (от таймера, клавиатуры, дисков и т.д.). Команда не имеет параметров и не воздействует на остальные флаги процессора.
Пример:
sti; Разрешение аппаратных прерываний
STOS Запись в строку данных. STOSB Запись байта в строку данных. STOSW Запись слова в строку данных.
Команды предназначены для операций над строками (строкой называется последовательность байтов или слов памяти с любым содержимым). Они копируют содержимое регистра AL (в случае операций над байтами) или АХ (в случае операций над словами) в ячейку памяти соответствующего размера по адресу, определяемому содержимым пары регистров ES:DI. После операции копирования регистр DI получает положительное (если флаг DF=0) или отрицательное (если флаг DF=1) приращение. Величина приращения составляет 1 или 2 в зависимости от размера копируемого элемента.
Вариант команды stos имеет формат:
stos строка
(Что не избавляет от необходимости инициализировать регистры ES:DI адресом строки строка). Заменить сегментный регистр ES нельзя.
Рассматриваемые команды могут предваряться префиксом повторения rep. В этом случае они повторяются СХ раз, заполняя последовательные ячейки памяти одним и тем же содержимым регистра AL или АХ. Команда не воздействует на флаги процессора.
Пример 1:
;В полях данных сегмента данных, адресуемого через ES: id db 'ID:' ;В программном сегменте: eld; Движение по строке вперед mov DI,offset id+3; DI › за знаком ':' mov AL,'3'; Код ASCII цифры 3 stosb; Отправим в строку mov AL,'9'; Код ASCII цифры 9 stosb; Отправим в строку ;Теперь в строке id записано 'ID:39'