Иллюстрированный самоучитель по Assembler

S

Пример 2:

;В полях данных сегмента данных, адресуемого через ES:
array dw 10000 dup (?); Место под массив слов
; В программном сегменте:
mov AX,-1; Число-заполнитель
mov CX,10000; Заполнить 10000 слов
сld; Движение по строке вперед
lea DI,array; ES:DI ® array
rep stosw; Bce 10000 элементов массива
;получают значение – 1 (FFFFh)

Пример 3:

;В полях данных сегмента данных, адресуемого через ES:
line db 80 dup (' '); Пустая пока строка
;В программном сегменте:
mov AL,'>'; Код ASCII знака '>'
mov CX,5; Заполнить 5 слов
eld; Движение по строке вперед
lea DI,line; ES:DI › line
rep stos line; Первые 5 байт строки line
;заполняются кодом ASCII
;знака ' >'

Пример 4:

;В полях данных сегмента данных, адресуемого через ES:
line dw 80 dup (0); Строка, заполненная нулями
;В программном сегменте:
mov AL,'>'; Код ASCII знака '>'
mov AH,31h; Атрибут (синий по бирюзовому)
mov CX,5; Заполнить 5 слов
сld; Движение по строке вперед
lea DI,line; ES:DI – " line
rep stos line; Первые 5 слов строки line
;заполняются кодом ASCII
;знака '>'вместе с атрибутом
;для последующего вывода на экран

386+ STOSD Запись двойного слова в строку данных

Команда аналогична командам МП 86 stosb и stosw, но позволяет записать в строку, адресуемую через регистры ES:EDI, двойное слово из регистра ЕАХ.

Пример:

; В полях данных
dat dd 12789.2.550000.100000
; В программном сегменте
mov ЕАХ,444777
push DS
pop ES; ES=DS
mov DI, off set dat
add DI,4*2; DS:SI – " 3-й элемент массива чисел
stosd; dat=12789.2.444777.100000
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.