Арифметические операции (1-ая часть)

Содержание

Слайд 2

План:

Обработка двоичных данных
Беззнаковые и знаковые данные
Умножение
Сдвиг регистровой пары DX: АХ

План: Обработка двоичных данных Беззнаковые и знаковые данные Умножение Сдвиг регистровой пары DX: АХ

Слайд 3

Обработка двоичных данных

Сложение и вычитание
Переполнение

Обработка двоичных данных Сложение и вычитание Переполнение

Слайд 4

Сложение и вычитание

Команды ADD и SUB выполняют сложение и вычитание байтов или

Сложение и вычитание Команды ADD и SUB выполняют сложение и вычитание байтов
слов, содержащих двоичные данные.
Пример:
MOV AX,WORDA
ADD AX,WORDB
MOV WORDB,AX

Слайд 5

Переполнения

ADD AL,20H
CBW ;Расширение AL до AX
ADD AX,20H ;Прибавить к AX

Переполнения ADD AL,20H CBW ;Расширение AL до AX ADD AX,20H ;Прибавить к AX

Слайд 6

Беззнаковые и знаковые данные

Команды ADD и SUB не делают разницы между знаковыми

Беззнаковые и знаковые данные Команды ADD и SUB не делают разницы между
и беззнаковыми величинами, они просто складывают и вычитают биты.

Слайд 7

Беззнаковое Знаковое
1111 1001 249 -7
+ + + +
0000 0010 2 +2
-----------------------
1111

Беззнаковое Знаковое 1111 1001 249 -7 + + + + 0000 0010
1011 251 -5

Слайд 8

Умножение

Байт на байт
Слово на слово
Беззнаковое умножение
Знаковое умножение
Повышение эффективности умножения
Многословное умножение
Умножение двойного слова

Умножение Байт на байт Слово на слово Беззнаковое умножение Знаковое умножение Повышение
на слово
Умножение двойного слова на двойное слово

Слайд 9

Операция умножения для беззнаковых данных выполняется командой MUL, а для знаковых -

Операция умножения для беззнаковых данных выполняется командой MUL, а для знаковых -
IMUL
Байт на байт Множимое находится в регистре AL, а множитель в байте памяти или в однобайтовом регистре. После умножения произведение находится в регистре AX. Операция игнорирует и стиpает любые данные, которые находились в регистре AH.
Слово на слово Множимое находится в регистре AX, а множитель - в слове памяти или в регистре. После умножения произведение находится в двойном слове, для которого требуется два регистра: старшая (левая) часть произведения находится в регистре DX, а младшая (правая) часть в регистре AX. Операция игнорирует и стирает любые данные, которые находились в регистре DX.

Слайд 10

MUL MULTR
MUL CL ;Байт-множитель: множимое в AL, произвед. в AX
MUL BX ;Слово-множитель:множимое

MUL MULTR MUL CL ;Байт-множитель: множимое в AL, произвед. в AX MUL
в AX, произвед. в DX:AX

Слайд 11

Беззнаковое умножение: Команда MUL

Команда MUL (MULtiplication - умножение) умножает беззнаковые числа.

Беззнаковое умножение: Команда MUL Команда MUL (MULtiplication - умножение) умножает беззнаковые числа.

Слайд 12

Знаковое умножение: Команда IMUL

Команда IMUL (Integer MULtiplication - умножение целых чисел) умножает

Знаковое умножение: Команда IMUL Команда IMUL (Integer MULtiplication - умножение целых чисел) умножает знаковые числа.
знаковые числа.

Слайд 13

Повышение эффективности умножения

Умножение на 2:
SHL AL,1
Умножение на 8:
MOV CL,3
SHL AX,CL

Повышение эффективности умножения Умножение на 2: SHL AL,1 Умножение на 8: MOV CL,3 SHL AX,CL

Слайд 14

Многословное умножение

1365
х
12
------
2730
1365
------
16380

Многословное умножение 1365 х 12 ------ 2730 1365 ------ 16380

Слайд 15

13 65
х х
12 12
--- ---
26 130
13 65
--- ---
156 780

13 65 х х 12 12 --- --- 26 130 13 65 --- --- 156 780

Слайд 16

15600
+
780
-------
16380

15600 + 780 ------- 16380

Слайд 17

Умножение двойного слова на слово

Процедура E10XMUL умножает двойное слово на слово. Множимое,

Умножение двойного слова на слово Процедура E10XMUL умножает двойное слово на слово.
MULTCND, состоит из двух слов, содержащих соответственно шест.3206 и шест.2521. Определение данных в виде двух слов (DW) вместо двойного слова (DD) обусловлено необходимостью правильной адресации для команд MOV, пересылающих слова в регистр AX. Множитель MULTPLR содержит шест.6400.

Слайд 18

Область для записи произведения, PRODUCT, состоит из трех слов.
Первая команда MUL

Область для записи произведения, PRODUCT, состоит из трех слов. Первая команда MUL
перемножает MULTPLR и правое cлово поля MULTCND; произведение - шест.0E80 E400 записывается в PRODUCT+2 и PRODUCT+4.
Вторая команда MUL перемножает MULTPLR и левое слово поля MULTCND, получая в результате шест. 138A 5800.

Слайд 19

Произведение 1: 00000E80E400
Произведение 2: 138A5800

Результат: 138A6680E400

Произведение 1: 00000E80E400 Произведение 2: 138A5800 — Результат: 138A6680E400

Слайд 20

Умножение двойного слова на двойное слово

слово 2 слово 2
слово 2 слово 1
слово

Умножение двойного слова на двойное слово слово 2 слово 2 слово 2
1 слово 2
слово 1 слово 1
Каждое произведение в регистрах DX и AX складывается с соответствующим словом в окончательном результате.

Слайд 21

Сдвиг регистровой пары DX:AX

Сдвиг влево на 4 бита
MOV CX,04 ;Инициализация на 4

Сдвиг регистровой пары DX:AX Сдвиг влево на 4 бита MOV CX,04 ;Инициализация
цикла C20:
SHL DX,1 ;Сдвинуть DX на 1 бит влево
SHL AX,1 ;Сдвинуть AX на 1 бит влево
ADC DX,00 ;Прибавить значение переноса
LOOP C20 ;Повторить Сдвиг вправо на 4 бита
MOV CX,04 ;Инициализация на 4 цикла D20:
SHR AX,1 ;Сдвинуть AX на 1 бит вправо
SHR DX,1 ;Сдвинуть DX на 1 бит вправо
JNC D30 ;В случае, если есть перенос,
OR AH,10000000B ; то вставить 1 в AH D30:
LOOP D20 ;Повторить
Имя файла: Арифметические-операции-(1-ая-часть).pptx
Количество просмотров: 34
Количество скачиваний: 0