Байланысты: Lab raboty Arkhitektura i organizatsia EVM
xchg операнд1, операнд 2 – обменивает операнды. Например, если al=45, ah=37, то после выполнения xchg al, ah будет al=37, ah=45;
add приемник, источник – выполняет сложение приемника и источника, результат заносится в приемник. Источник не изменяется. Но зато меняются флаги:
adc приемник, источник – выполняет сложение приемника, источника и флага CF.
Обычно эта команда используется для сложения чисел повышенной точности.
Пусть, например, у нас имеются два 64-битных числа: первое в edx: eax (младшее двойное слово в eax, старшее двойное слово в edx), второе – в ebx: ecx. Тогда после выполнения команд: add eax, ecx; adc edx, ebx; в паре регистров edx:eax будет находиться сумма этих 64-битных чисел. Когда были 16-разрядные процессоры, подобным образом складывали 32-битные числа (считая, что каждое состоит из двух 16-битных). Сейчас это не имеет смысла. Более того, процессору все равно, какие числа складывать – 16-разрядные или
32-разрядные. Скорость одинаковая. Поэтому сложение 32-битных чисел на прямую быстрее, чем с разбиением и сложением 16-битных (в два раза). Но иногда это может понадобиться (например, Турбо-Паскаль не понимает 32-битные регистры). Этим и объясняется, что 16-битные программы медленнее, чем 32-битные;
sub приемник, источник – вычитает источник из приемника, результат заносит в приемник;
sbb приемник, источник – вычитает из приемника значение источника, затем вычитает значение CF. Ее можно использовать для вычитания 64-битных слов;
inc приемник – то же самое, что и add приемник, 1;
c приемник – то же самое, что и sub приемник, 1;
p операнд1, операнд2 – по сути, вычитание операнда2 из операнда1, только операнды не меняются (команда меняет только флаги). С помощью этой команды обычно выполняются условные переходы (самый очевидный способ);
d|or приемник, источник – выполняет логическое по битовое И|ИЛИ над приемником и источником и помещает результат в приемник. Часто используется для выборочного обнуления|объединичивания отдельных битов. Например, команда and al, 00001111b обнулит старшие четыре бита регистра al, а младшие не изменит;
r приемник, источник – логическое исключающее ИЛИ. Выполняет побитное логическое исключающее ИЛИ над приемником и источником, результат заносится в приемник. Часто используется для обнуления регистров. Например, xor ax, ax обнуляет регистр ax и делает это быстрее, чем mov ax, 0. Этой командой следует пользоваться для обнуления регистров. Мо жете не бояться экзотичности этой команды. Она будет эффективно работать на любом Intel-совместимом компьютере. Эта команда официально поддерживается Intel как команда обнуления регистра;
st операнд1, операнд2 – по сути, выполняет команду and над операндами, но операнды не меняет, а меняет только флаги аналогично and;
t приемник – каждый бит приемника, равный нулю, устанавливается в 1, и каждый бит, равный 1, устанавливается в 0. Флаги не меняются.