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