169 похожих чатов

C jz и jnz поняла. А как сравнивать через scas?

В учебнике нашла вот такую конструкцию
repne scasb

7 ответов

19 просмотров

Это аналогично такой конструкции: МyLoop: cmp al, es:[di] Inc di loop MyLoop Но при этом сохраняются флаги сравнения

repne - дословно "repeat until not equal" ("повторять, пока значения не будут неравны"), scasb - сравнивает два байта по указателям в SI и DI и устанавливает флаг Z, если они неравны. (упрощённое и неполное объяснение, конечно)

Тут ещё важный момент - не забыть установить флаг направления DF в нужное значение, чаще всего 0, при помощи инструкции cld.

Анна-Марчук Автор вопроса
Анна Марчук
а вот тут поподробнее насчёт флага

Заодно исправлю свою ошибку выше. scasb сравнивает значение регистра AL и значение по адресу в регистре DI. Вот флаг направления решает, уменьшать при каждом повторе инструкции регистр DI на единицу или увеличивать.

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта