Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
palivo_finalv0_2.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

72. Команди stos, stoSx

Эти команды сохраняют элемент из регистров al/ax/eax в ячейку памяти. Перед командой stos можно указать префикс повторения rep, в этом случае появляется возможность работы с блоками памяти, заполняя их значениями в соответствии с содержимым регистра ecx/cx. Команда STOS обеспечивает повторение пока не достигнут конец цепочки, т.е. пока содержимое регистра CX не достигнет нуля. После каждого повторения производится декремент CX, поэтому его необходимо инициализировать на требуемое число. Тип записываемой информации определяется по мнемонике команды: символ B (STOSB) означает

запись байта, W (STOSW)- запись слова, D (STOSD) – запись двойного слова.

http://www.kolasc.net.ru/cdo/programmes/assembler/stos.html

73. Команди movs,movsx.

MOVS

MOVS (MOVS,MOVSB,MOVSW) Пересылка данных из строки в строку

Команды предназначены для операций над строками (строкой называется последовательность байтов или слов памяти с любым содержимым). Они пересылают по одному элементу строки, который может быть байтом или словом. Первый операнд (приемник) адресуется через ES:DI, второй (источник) - через DS:SI. Операцию пересылки можно условно изобразить следующим образом:

(DS:SI) -> (ES:DI)

После каждой операции пересылки регистры SI и DI получают положительное (если флаг DF=0) или отрицательное (если флаг DF=1) приращение. Величина приращения составляет 1 или 2 в зависимости от размера пересылаемых элементов. Вариант команды movs имеет формат:

movs строка_1, строка_2

MOVSX (MOVe and Sign eXtension)

Команда преобразует операнд со знаком в эквивалентный ему операнд со знаком большей размерности. Для этого содержимое операнда источник начиная с младших разрядов записывается в операнд приемник. Старшие биты операнда приемник заполняются значением знакового разряда операнда источник.

Синтаксис

MOVSX приемник, источник

Машинный код

OF BE/r — MOVSX r16,r/m8 OF BE/r — MOVSX r32,r/m8 OF BF/r — MOVSX r32,r/m16

Алгоритм работы:  считать содержимое источника;  записать содержимое операнда источника в операнд приемник, начиная с младших разрядов источника;  распространить значение знакового разряда источника на свободные старшие разряды операнда назначения.

Источник-Куча сайтов, везде одно и то же.

74. Префікс повторення rep та його різновиди.

Один из возможных типов префиксов — это префиксы повторения. Они предназначены для использования цепочечными командами.

Префиксы повторения имеют свои мнемонические обозначения:

rep  repe или repz  repne или repnz

Эти префиксы повторения указываются перед нужной цепочечной командой в поле метки.  Цепочечная команда без префикса выполняется один раз. Размещение префикса перед цепочечной командой заставляет ее выполняться в цикле.

Отличия приведенных префиксов в том, на каком основании принимается решение о циклическом выполнении цепочечной команды: по состоянию регистра ecx/cx или по флагу нуля zf:

  • префикс повторения rep (REPeat). Этот префикс используется с командами, реализующими операции-примитивы пересылки и сохранения элементов цепочек — соответственно, movs и stos.

Префикс rep заставляет данные команды выполняться, пока содержимое в ecx/cx не станет равным 0.  При этом цепочечная команда, перед которой стоит префикс, автоматически уменьшает содержимое ecx/cx на единицу. Та же команда, но без префикса, этого не делает;

  • префиксы повторения repe или repz (REPeat while Equal or Zero). Эти префиксы являются абсолютными синонимами.

Они заставляют цепочечную команду выполняться до тех пор, пока содержимое ecx/cx не равно нулю или флаг zf равен 1.  Как только одно из этих условий нарушается, управление передается следующей команде программы. Благодаря возможности анализа флага zf, наиболее эффективно эти префиксы можно использовать с командами cmps и scas для поиска отличающихся элементов цепочек.

  • префиксы повторения repne или repnz (REPeat while Not Equal or Zero). Эти префиксы также являются абсолютными синонимами. Их действие на цепочечную команду несколько отличается от действий префиксов repe/repz. Префиксы repne/repnz заставляют цепочечную команду циклически выполняться до тех пор, пока содержимое ecx/cx не равно нулю или флаг zf равен нулю.

При невыполнении одного из этих условий работа команды прекращается.  Данные префиксы также можно использовать с командами cmps и scas, но для поиска совпадающих элементов цепочек.

http://kit.znu.edu.ua/eDoc/Arch/assembl/guide/Lesson/Lesson11/Les_11.htm

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]