Описание простейших команд ассемблера

1) mov приёмник, источник – команда пересылки данных. Копирует содержимое источника в приёмник, источник не изменяется. Например: movax, 1 присваивает регистру ax значение 1. Команда movax, word ptr eax – записывает в ax слово, лежащее по адресу eax. Байт по адресу eax записывается в младшую половину ax (в al), а байт по адресу eax+1 записывается в ah (по закону Intel). Операнды команды movмогут быть как регистрами, так и переменными, но одновременно оба операнда не могут быть переменными

2) xchg операнд1, операнд2 – обменивает операнды. Например, если al=45, ah=37, то после выполнения xchg al, ah будет al=37, ah=45

3) add приёмник, источник – выполняет сложение приёмника и источника, результат заносится в приёмник. Источник не изменяется. Но зато меняются флаги

4) adc приёмник, источник – выполняет сложение приёмника, источника и флага CF. Обычно эта команда используется для сложения чисел повышенной точности. Пусть, например, у нас имеются два 64-битных числа: первое в edx:eax (младшее двойное слово в eax, старшее двойное слово в edx), второе – в ebx:ecx. Тогда после выполнения команд: addeax, ecx; adcedx, ebx; в паре регистров edx:eax будет находиться сумма этих 64-битных чисел.

5) sub приёмник, источник – вычитает источник из приёмника, результат заносит в приёмник

6) sbb приёмник, источник – вычитает из приёмника значение источника, затем вычитает значение CF. Её можно использовать для вычитания 64-битных слов

7) inc приёмник – то же самое, что и addприёмник, 1

8) dec приёмник – то же самое, что и subприёмник, 1

9) cmp операнд1, операнд2 – по сути вычитание операнда2 из операнда1, только операнды не меняется (команда меняет только флаги). С помощью этой команды обычно выполняются условные переходы

10) and|or приёмник, источник – выполняет логическое побитовое И|ИЛИ над приёмником и источником, и помещает результат в приёмник. Часто используется для выборочного обнуления|объединичивания отдельных битов. Например, команда andal, 00001111b обнулит старшие 4 бита регистра al, а младшие не изменит

11) xor приёмник, источник – логическое исключающее ИЛИ. Выполняет побитое логическое исключающее ИЛИ над приёмником и источником, результат заносится в приёмник. Часто используется для обнуления регистров. Например, xorax, ax обнуляет регистр ax, и делает это быстрее, чем movax, 0. Этой командой следует пользоваться для обнуления регистров.

12) test операнд1, операнд2 – по сути выполняет команду andнад операндами, но операнды не меняет, а меняет только флаги аналогично and

13) not приёмник – каждый бит приёмника, равный нулю, устанавливается в 1, и каждый бит, равный 1, устанавливается в 0. Флаги не меняются

Assembler — регистры и арифметические команды


Читать еще…

Понравилась статья? Поделиться с друзьями: