Арифметические операции

Содержание

Слайд 2

Инструкции сложения ADD и вычитания SUB

Команда ADD требует двух операндов, как

Инструкции сложения ADD и вычитания SUB Команда ADD требует двух операндов, как
и команда MOV:
ADD ol , о2
Команда ADD складывает оба операнда и записывает результат в ol, предыдущее значение которого теряется.

Слайд 3

Инструкции сложения ADD и вычитания SUB

Точно так же работает команда вычитания

Инструкции сложения ADD и вычитания SUB Точно так же работает команда вычитания
— SUB:
SUB ol , o2
Результат, ol-o2, будет сохранен в ol, исходное значение ol будет потеряно.

Слайд 4

Например…

Например…

Слайд 5

Размеры переменных

Бит (bit) - двоичный разряд.  Байт (byte) - последовательность из 8 бит.  Слово (word) -

Размеры переменных Бит (bit) - двоичный разряд. Байт (byte) - последовательность из
последовательность из двух байт (16 бит).  Двойное слово (double word) - последовательность из четырех байт (32 бита).

Слайд 6

Проверяем, понимаете ли вы, что происходит

Проверяем, понимаете ли вы, что происходит

Слайд 7

Что получится в результате?

?

Что получится в результате? ?

Слайд 8

Что получится в результате?

Что получится в результате?

Слайд 9

Команды инкрементирования INC и декрементирования DEC

Команда INC добавляет, a DEC вычитает единицу

Команды инкрементирования INC и декрементирования DEC Команда INC добавляет, a DEC вычитает
из единственного операнда. Допустимые типы операнда — такие же, как у команд ADD и SUB, а формат команд таков:

Слайд 10

Например…

Например…

Слайд 11

Отрицательные числа — целые числа со знаком

Один байт может содержать числа

Отрицательные числа — целые числа со знаком Один байт может содержать числа
в диапазоне от 0 до 255.
Код дополнения заменяет этот диапазон другим — от -128 до 127.

Положительные

отрицательные

???

Слайд 12

Решение – маппинг!

Диапазон от 0 до 127 отображается сам на себя,
отрицательным

Решение – маппинг! Диапазон от 0 до 127 отображается сам на себя,
числам сопоставляется диапазон от 128 до 255:
числу -1 соответствует число 255,
числу -2 — 254 и т.д.
Процесс отображения отрицательных чисел в дополнительный код иногда называют маппингом

Слайд 13

Например…

Например…

Слайд 14

Команды для работы с отрицательными числами. Команда NEG

Используя NEG, вы можете

Команды для работы с отрицательными числами. Команда NEG Используя NEG, вы можете
преобразовывать положительное целое число в отрицательное и наоборот.
Инструкция NEG имеет только один операнд, который может быть регистром или адресом памяти.
Размер операнда — лю­ бой: 8, 16 или 32 бита.
NEG eax
NEG byte [number]

Слайд 15

Целочисленное умножение и деление (команды MUL, DIV).

Операции умножения и деления имеют

Целочисленное умножение и деление (команды MUL, DIV). Операции умножения и деления имеют
свою специфику. В результате умножения двух чисел мы можем получить число, диапазон которого будет в два раза превышать диапазон операндов.
Деление целых чисел — это операция целочисленная, поэтому в результате образуются два значения: частное и остаток.
С целью упрощения реализации команд умножения и деления эти команды спроектированы так, что один из операндов и результат находятся в фиксированном регистре, а второй операнд указывается программистом.

Слайд 16

Что куда заносим?

В 8-разрядной форме операнд может быть любым 8-битным регистром или

Что куда заносим? В 8-разрядной форме операнд может быть любым 8-битным регистром
адресом памяти. Второй операнд всегда хранится в AL. Результат (произведение) будет записан в регистр АХ

Слайд 17

Что куда заносим?

В 16-разрядной форме операнд может быть любым 16-битным регистром или

Что куда заносим? В 16-разрядной форме операнд может быть любым 16-битным регистром
адресом памяти. Второй операнд всегда хранится в АХ. Результат сохраняется в паре DX:AX

Слайд 18

Что куда заносим?

В 32-разрядной форме второй операнд находится в регистре ЕАХ, а

Что куда заносим? В 32-разрядной форме второй операнд находится в регистре ЕАХ,
результат записывается в пару EDX.EAX.

Слайд 19

Например…

Например…

Слайд 20

Команда IMUL

Команда IMUL умножает целые числа со знаком и может использовать один,

Команда IMUL Команда IMUL умножает целые числа со знаком и может использовать
два или три операнда.
Когда указан один операнд, то поведение IMUL будет таким же, как и команды MUL, просто она будет работать с числами со знаком.
Если указано два операнда, то инструкция IMUL умножит первый операнд на второй и сохранит результат в первом операнде, поэтому первый операнд всегда должен быть регистром. Второй операнд может быть регистром, непосредственным значением или адресом памяти.

Слайд 21

Например…

Например…

Слайд 22

А что, если три?

Если указано три операнда, то команда IMUL перемножит второй

А что, если три? Если указано три операнда, то команда IMUL перемножит
и третий операнды, а результат сохранит в первый операнд.
Первый операнд — только регистр, второй может быть любого типа, а третий должен быть только непосредственным значением:

Слайд 23

Например…

Например…

Слайд 24

Команды DIV и IDIV

В 8-битной форме переменный операнд (делитель) может быть любым

Команды DIV и IDIV В 8-битной форме переменный операнд (делитель) может быть
8-битным регистром или адресом памяти. Делимое содержится в АХ. Результат сохраняется так: частное — в AL, остаток — в АН.

Слайд 25

Команды DIV и IDIV

В 16-битной форме операнд может быть любым 16-битным регистром

Команды DIV и IDIV В 16-битной форме операнд может быть любым 16-битным
или адресом памяти. Второй операнд всегда находится в паре DX:AX. Результат сохраняется в паре DX:AX (DX — остаток, АХ — частное).

Слайд 26

Команды DIV и IDIV

В 32-разрядной форме делимое находится в паре EDX:EAX, а

Команды DIV и IDIV В 32-разрядной форме делимое находится в паре EDX:EAX,
результат записывается в пару EDX:EAX (частное в ЕАХ, остаток в EDX).

Слайд 27

Команда IDIV используется для деления чисел со знаком, синтаксис ее такой же,

Команда IDIV используется для деления чисел со знаком, синтаксис ее такой же, как у команды DIV.
как у команды DIV.

Слайд 28

Например…

Например…

Слайд 29

Например..

Например..
Имя файла: Арифметические-операции.pptx
Количество просмотров: 29
Количество скачиваний: 0