Ассемблер для Windows

       

Строковые операции



Строковые операции

REP Префикс, означающий повтор строковой операции до обнуления ECX. Префикс имеет также разновидности REPZ (REPE) - выполнять, пока не нуль (ZF=1), REPNZ (REPNE) - выполнять, пока нуль. MOVS dest,src Команда передает байт, слово или двойное слово из цепочки, адресуемой DS:[ESI], в цепочку dest, адресуемую ES:[EDI]. При этом EDI и ESI автоматически корректируются согласно значению флага DF. Допускается явная спецификация MOVSB (byte), MOVSW (word), MOVSD (dword). Dest и src можно явно не указывать. LODS src Команда загрузки цепочки в аккумулятор. Имеет разновидности LODSB, LODSW, LODSD. При выполнении команды байт, слово, двойное слово загружается соответственно в AL,AX,EAX. При этом ESI автоматически изменяется на 1 в зависимости от значения флага DF. Префикс REP не используется. STOS dest Команда, обратная LODS, т.е. передает байт, слово или двойное слово из аккумулятора в цепочку и автоматически корректирует EDI. SCAS dest Команда сканирования цепочки. Команда вычитает элемент цепочки dst из содержимого аккумулятора (AL\AX\EAX) и модифицирует флаги. Префикс REPNE позволяет найти в цепочке нужный элемент. CMPS dest,src Команда сравнения цепочек. Данная команда производит вычитание байта, слова или двойного слова цепочки dst из соответствующего элемента цепочки src. В зависимости от результата вычитания модифицируются флаги. Регистры EDI и ESI автоматически продвигаются на следующий элемент. При использовании префикса REPE команда означает - сравнивать, пока не будет, достигнут конец цепочки или пока элементы не будут равны. При использовании префикса REPNE команда означает - сравнивать, пока не достигнут конец цепочки или пока элементы будут равны.

Содержание раздела