Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laborator2.doc
Скачиваний:
11
Добавлен:
12.04.2015
Размер:
215.55 Кб
Скачать

Способ устранения переполнения

При работе с байтовыми данными состояния переполнения можно избежать, применив команду CBW(ConvertBytetoWord– преобразователь байта в слово). Для командыCBWоперандом является младший байтовый регистрAL, при этом значение левого бита заполняет старший байтовый регистрAH.

CBW;AL=60h, расширениеALдоAX,AX=0060h

ADDAX, 20H; прибавить к АХ,AX=0080&CF=0

2.3.2 Команды умножения и деления

Команды знакового (IMUL) и беззнакового (MUL) умножения используются в 2-х основных форматах:

  1. умножение байта на байт: множимое – AL, множитель –REG(8)/MEM(8), произведение –AX.

  2. умножение слова на слово: множимое – AX, множитель –REG(16)/MEM(16), произведение –DX:AX.

Быстрое умножение: при умножении на степень числа 2 (21, 22, 23, 24)более быстрым является сдвиг влево. Количество сдвигов – в СХ.

SHLAL,1 ;умножение на 2

MOVAL,3 ; умножение

SHL AL,1 ; на 8

2.4 Контрольные вопросы

  1. Какими командами можно изменить содержимое CS.

  2. Напишите программу сложения 2-х 128 разрядных чисел.

  3. Какое назначение универсальных регистров МП.

  4. Являются ли ошибочными команды: PUSHAL,POPAH.

  5. Какое назначение команд PUSHF,POPF. Почему значениеSPвсегда четное.

  6. Как изменить содержимое SPдля обращения к произвольной ячейке стека.

  7. В каких случаях команды MULиIMULформируют различные результаты

  8. Составьте ГСА программы умножения двойных слов.

Приложение

Таблица вариантов арифметических операций

N

Арифмет. операции

Тип операндов

Знак операндов

Разрядность операндов

ОП1

ОП2

ОП3

ОП4

ОП1,

ОП2

ОП3,

ОП4

ОП1,

ОП2

ОП3,

ОП4

ОП1,

ОП2

ОП3,

ОП4

1

+

*

/

binary

DB, 2:1

зн

бзн

3

2

-

*

/

BCD1

DW, 2:1

бзн

бзн

5

3

+

*

/

BCD2

DB, 4:2

бзн

зн

6

4

-

*

/

binary

DW, 4:2

зн

зн

7

5

+

*

/

BCD1

DB, 4:2

бзн

бзн

3

6

+

-

*

/

BCD2

DW, 4:2

бзн

зн

5

7

-

*

/

binary

DB, 2:1

бзн

бзн

6

8

+

-

*

/

BCD1

DW, 2:1

бзн

зн

7

9

+

*

/

BCD2

DB, 4:2

бзн

бзн

3

10

+

-

*

/

binary

DB, 4:2

зн

зн

5

11

-

*

/

BCD1

DW, 4:2

бзн

зн

6

12

+

-

*

/

BCD2

DB, 2:1

бзн

бзн

7

13

+

*

/

binary

DB, 2:1

бзн

бзн

3

14

+

-

*

/

BCD1

DW, 2:1

бзн

зн

5

15

-

*

/

BCD2

DW, 2:1

бзн

зн

6

16

+

-

*

/

binary

DB, 4:2

бзн

бзн

7

17

+

*

/

BCD1

DB, 2:1

бзн

бзн

3

18

+

-

*

/

BCD2

DW, 2:1

бзн

зн

5

19

+

*

/

binary

DB, 4:2

зн

зн

6

20

-

*

/

BCD1

DW, 4:2

бзн

бзн

7

21

+

*

/

BCD2

DW, 4:2

бзн

бзн

3

22

-

*

/

binary

DB, 2:1

зн

зн

5

23

+

*

/

BCD1

DW, 4:2

бзн

зн

6

24

-

*

/

BCD2

DW, 2:1

бзн

бзн

7

25

+

*

/

binary

DW, 2:1

бзн

зн

3

BCD1 – неупакованный двоично-десятичный формат.

BCD2 – упакованный двоично-десятичный формат.

Binary – двоичный формат числа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]