Слайд 2
Вычитание:
обычное - SUB,
вычитание с заемом - SBB,
декрементация (-1)
![Вычитание: обычное - SUB, вычитание с заемом - SBB, декрементация (-1) –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/861756/slide-1.jpg)
– DEC.
Команда Выполнение команды процессором:
sub bx, 4 ; bx ← bx –4
sbb ds:[8], cl ; ds:[8]←ds:[8]– cl - CF
dec ax ; ax ← ax - 1
Слайд 3
Сравнение: CMP
Команда Выполнение команды процессором:
cmp ax, 7 ; ах
![Сравнение: CMP Команда Выполнение команды процессором: cmp ax, 7 ; ах -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/861756/slide-2.jpg)
- 7
При выполнении команды сравнения CMP процессор вычисляет разность между первым и вторым операндом, которая никуда не записывается.
Результат команды являются установленные арифметические флаги, по которым можно судить о соотношении этих величин.
Слайд 4
Изменение знака числа: NEG
Команда Выполнение команды процессором:
neg edx ;
![Изменение знака числа: NEG Команда Выполнение команды процессором: neg edx ; edx](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/861756/slide-3.jpg)
edx ← 0 - edx
Изменение знака числового операнда получается вычитанием его из нуля.
Слайд 5
Умножение:
беззнаковых – MUL, знаковых – IMUL
Команды имеют один явный
![Умножение: беззнаковых – MUL, знаковых – IMUL Команды имеют один явный операнд.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/861756/slide-4.jpg)
операнд. Второй - по умолчанию.
Произведение размещается процессором в определенных регистрах (см.описание команды в системе команд)
Важно!
- форматы операндов должны быть одинаковые
- формат произведения получится в два раза длиннее
Слайд 6Пример. Получить произведение 258 на 7
Выбор формата операндов – слова.
Один из
![Пример. Получить произведение 258 на 7 Выбор формата операндов – слова. Один](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/861756/slide-5.jpg)
операндов по умолчанию надо разместить в АХ
mov сx, 258 ; 1-й операнд в сх
mov ax, 7 ; 2-й операнд в ах
mul сx ; dx-ax ← ах * сx
Полученное 4-байтное произведение процессор «разложит» по регистрам dx - старшее слово и ax -младшее слово
Ручная отладка: 258*7=180610 = 70е16
Ожидаем 4-х байтное произведение 00 00 07 0e (в hex):
в DX=00 00, в AX - 070e
Слайд 7
Деление (целочисленное):
беззнаковых – DIV, знаковых – IDIV
Команды имеют один
![Деление (целочисленное): беззнаковых – DIV, знаковых – IDIV Команды имеют один явно](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/861756/slide-6.jpg)
явно задаваемый операнд - делитель. Делимое берется процессором по умолчанию из определенных регистров (см. систему команд).
Важно !:
- Формат делимого должен быть в 2 раза длиннее формата делителя;