Mov ds,ax
Code
Data
Stosd
Stosw
Stosb
Перенос элемента из аккумулятора в строку
End main
Int 21h
Mov ax, 4c00h
Mov ah, 9h
Jmp m1
Jcxz m
Mov cx,6
Lea si, string2
Lea di, string1
Cld
Mov es,ax
Mov ds,ax
Code
Data
Lodsd
Lodsw
Lodsb
Пример программы, которая сравнивает две строки и первый не совпавшийэлемент строки помещает в аккумулятор:
string1 db ‘1 2 3 4 5 6,$’
string2 db ‘1 2 3 8 5 6,$’
mes db ‘элементы совпали, $’
assume ds:data, es:data
main:
mov ax,@data
repe cmps string1, string2 ; сравнение пока cx>0 и zf=1
dec si ;в регистре si адрес не совпавшего элемента строки
lods string2 ; (можноlodsb)загрузка байта 8 в аккумулятор
m:
mov dx, offset mes ;загрузить адрес в dx
int 21h ;вывод сообщения «Элементы совпали»
m1:
stos <приемник>
Эту операцию удобно использовать вместе с операциями поиска с тем, чтобы, найдя нужный элемент, извлечь его в регистр и записать на его место новое значение. Адрес приемника записывается в пару регистров ES:DI.
После выполнения команды происходит изменение содержимого регистра DI, равное значению размеру элемента строки: увеличение, если DF=0 или уменьшение, если DF=1.
Пример
Записать в строку 15 пробелов:
string db 15 dup (?)
mov ax,@data