Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| reverseenengineering:основы [2025/07/04 17:55] – [Операнды, коды, форматы] Lex | reverseenengineering:основы [2025/07/04 17:56] (текущий) – [Операнды, коды, форматы] Lex | ||
|---|---|---|---|
| Строка 134: | Строка 134: | ||
| ==== Группа " | ==== Группа " | ||
| - | Команды ADD, OR, ADC, SBB, AND, SUB, XOR, CMP - эти восемь команд можно назвать самыми первыми в системе команд x86 (" | + | > Команды ADD, OR, ADC, SBB, AND, SUB, XOR, CMP - эти восемь команд можно назвать самыми первыми в системе команд x86 (" |
| - | Команда TEST также имеет два операнда. Три ее формы почти такие же, как у команд первой восьмерки и отличаются только в деталях. | + | > Команда TEST также имеет два операнда. Три ее формы почти такие же, как у команд первой восьмерки и отличаются только в деталях. |
| - | Команды NEG и NOT имеют только один операнд, | + | > Команды NEG и NOT имеют только один операнд, |
| - | Примечание. Команды умножения и деления помещены в свою отдельную группу: | + | > Примечание. Команды умножения и деления помещены в свою отдельную группу: |
| ==== Операнды, | ==== Операнды, | ||
| Строка 148: | Строка 148: | ||
| CMD dst, src | CMD dst, src | ||
| - | Здесь CMD - мнемоника команды, | ||
| - | В операциях вычитания из значения dst вычитается значение src. | ||
| - | Таким образом, | + | > Здесь CMD - мнемоника команды, |
| + | |||
| + | > В операциях вычитания из значения dst вычитается значение src. | ||
| + | |||
| + | > Таким образом, | ||
| dst = dst + src | dst = dst + src | ||
| Строка 158: | Строка 160: | ||
| === Команды с участием флага переноса === | === Команды с участием флага переноса === | ||
| - | Команда ADC выполняет сложение трех слагаемых: | ||
| - | По команде SBB из значения первого (dst) операнда вычитается значение второго (src) операнда. Из полученного результата вычитается значение флага переноса CF (значение 0 или 1). Результат выполнения операции заносится в первый (dst) операнд. | + | > Команда ADC выполняет сложение трех слагаемых: |
| + | |||
| + | > По команде SBB из значения первого (dst) операнда вычитается значение второго (src) операнда. Из полученного результата вычитается значение флага переноса CF (значение 0 или 1). Результат выполнения операции заносится в первый (dst) операнд. | ||
| - | Условно это можно показать так: | + | > Условно это можно показать так: |
| dst = dst + src + CF | dst = dst + src + CF | ||