Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Форматы арифметических команд





команда add:

add reg/mem, imm; размер 8/16/32 бита

add reg, reg/mem; размер 8/16/32 бита

add mem/reg, reg; размер 8/16/32 бита

add reg/mem16, imm8; получатель 16 бит, источник 8 бит

add reg/mem32, imm8; получатель 32 бит, источник 8 бит

 

команда adc:

adc reg/mem, imm; размер 8/16/32 бита

adc reg, reg/mem; размер 8/16/32 бита

adc mem/reg, reg; размер 8/16/32 бита

adc reg/mem16, imm8; получатель 16 бит, источник 8 бит

adc reg/mem32, imm8; получатель 32 бит, источник 8 бит

 

команда xadd:

xadd reg/mem, reg; размер 8/16/32 бита

 

команда sub:

sub reg/mem, imm; размер 8/16/32 бита

sub reg, reg/mem; размер 8/16/32 бита

sub mem/reg, reg; размер 8/16/32 бита

sub reg/mem16, imm8; получатель 16 бит, источник 8 бит

sub reg/mem32, imm8; получатель 32 бит, источник 8 бит

 

команда sbb:

sbb reg/mem, imm; размер 8/16/32 бита

sbb reg, reg/mem; размер 8/16/32 бита

sbb mem/reg, reg; размер 8/16/32 бита

sbb reg/mem16, imm8; получатель 16 бит, источник 8 бит

sbb reg/mem32, imm8; получатель 32 бит, источник 8 бит

 

команда imul:

imul reg/mem; размер 8/16/32 бита

imul reg16, imm8; произведение 16 бит

imul reg16, imm16; произведение 16 бит

imul reg32, imm8; произведение 32 бита

imul reg32, imm32; произведение 32 бита

imul reg16, reg/mem16; произведение 16 бит

imul reg32, reg/mem32; произведение 32 бита

imul reg16, reg/mem16, imm8/16; произведение 16 бит

imul reg32, reg/mem32, imm8/32; произведение 32 бит

 

команда mul:

mul reg/mem; размер 8/16/32 бита

команда idiv:

idiv reg/mem; размер 8/16/32 бита

 

команда div:

div reg/mem; размер 8/16/32 бита

 

команда inc:

inc reg/mem; размер 8/16/32 бита

 

команда dec:

dec reg/mem; размер 8/16/32 бита

 

команда neg:

neg reg/mem; размер 8/16/32 бита

Двоично-десятичный формат целых чисел

• упакованный: XXXX XXXX;

• неупакованный: 0000 XXXX.

Четыре бита XXXX представляют десятичную цифру 0-9.

Все обычные операции над такими числами приводят к неправильным результатам.

Команды десятичной арифметики

1. команда BCD-коррекции после сложения DAA;

Пример: 19h + 1h = 1Ah; после DAA: 20h.

2. команда BCD-коррекции после вычитания DAS;

Пример: 20h - 1h = 1Fh; после DAS: 19h.

3. команда ASCII-коррекции после сложения AAA;

Пример: 05h + 06h = 0Bh; после AAA: 0101h.

4. команда ASCII-коррекции после вычитания AAS;

5. команда ASCII-коррекции после умножения AAM;

Пример: mov AL, 5; mov BL, 5; mul BL; aam; 0019h -> 0205h

6. команда ASCII-коррекции перед делением AAD;

Пример: mov AX, 0205h; mov BL, 5; aad; AX = 19h; div BL; AX = 05h

Арифметические команды воздействуют на следующие флаги

• CF(перенос);

• PF(чётность);

• AX(вспомогательный перенос);

• ZF(нуль);

• SF(знак);

• OF(переполнение).

Ситуация переноса\заема (CF) возникает, когда результат сложения \вычитания не помещается в приёмнике.

Пример:

FF = 11111111 = 255

+FF = 11111111 = 255

--------------------

1FE = 111111110 = 510

 

перенос

PF -> 1, когда результат арифметической операции имеет чётное число 1 в младших 8-ми битах.

Ситуация вспомогательного переноса\заема (AX) возникает при переносе из 3-го бита в 4-й.

Полезна в операциях десятичной арифметике.

ZF -> 1, когда результат арифметической операции 0.

SF -> 1, когда 1 в старшем разряде результата (результат отрицательный).

Ситуация переполнения (OF) возникает, когда результат умножения не помещается в приёмнике.

Пример

Пример c_e_l_l_s_программы, вычисляющей следующее арифметическое выражение:

где X и Y - двойное слово.

CodeSg segment 'CODE'

Assume CS:CodeSg, DS:DataSg, SS:StackSg

Begin: mov AX, DataSg

mov DS, AX;

mov BX, X; X -> BX (BX=10=Ah)

mov AX, BX; X -> AX (AX=10=Ah)

mul AX; AX = X^2 (AX=100=64h)

mov CX, AX; X^2 -> CX (CX=100=64h)

mov AX, BX; X -> AX (AX=10=Ah)

mov BX, Y; Y -> BX (BX=3)

mul BX; AX = X*Y (AX=30=1Eh)

sub AX, 2; AX = X*Y - 2 (AX=28=1Ch)

add AX, CX; AX = (X*Y - 2) + X^2 (AX=128=80h)

mov CX, AX; (X*Y - 2) + X^2 -> CX (CX=128=80h)

;

inc BX; Y + 1 (BX=4)

mov AX, BX; (Y+1) -> AX (AX=4)

mul AX; AX = (Y+1)^2 (AX=16=10h)

mul BX; AX = (Y+1)^2 * (Y+1) (AX=64=40h)

mov BX, AX; (Y+1)^3 -> BX (BX=64=40h)

;

mov AX, CX; (X*Y - 2) + X^2 -> AX (AX=128=80h)

mov DX, 0; 0 -> DX (DX=0)

div BX; AX = AX / BX (AX=2)

;

neg AX; -AX (AX=-2=FFFEh)

;

mov Z, AX; AX -> Z

;

Mov AX, 4C00h

Int 21h

CodeSg ends

;------------------------------------

DataSg segment 'DATA'

X DW 10

Y DW 3

Z DW?

DataSg ends

;------------------------------------

StackSg segment stack 'STACK'

Db 256 dup(0)

StackSg ends

;------------------------------------

End begin

Задание

Выполните 5 (пять) упражнений из ниже приведенного списка, выбирая по следующему принципу: пусть номер студента с списке группы N, тогда выполняются упражнения с номерами N, N+1, N+2, N+3, N+4.

Написать программу, вычисляющую Z для заданных X и Y двумя способами (с помощью команд двоичной и двоично-десятичной арифметики).

1. Z = (X^2 + 2*Y - 45) / (X^3);

2. Z = 1 / Y + X^3 - 32;

3. Z = (3 + X/Y) / (X-Y+1);

4. Z = X / (X - Y + X*Y);

5. Z = (4 - (X+3)/(Y-1))*(-XY);

6. Z = ((X+1)/Y - 1)*2X;

7. Z = Y*(2-(Y+1)/X);

8. Z = (XY - 1)/(X+Y);

9. Z = X^3 + Y -1;

10.Z = (XY + 1)/ X^2;

11.Z = (X+Y)/(X-Y);

12.Z = - 1/X^3 + 3;

13.Z = X - Y/X +1;

14.Z = ((X+Y)/Y^2 - 1)*X;

15.Z = (X-Y)/(XY+1);

16.Z = - X/Y+Y^2 +3;

17.Z = Y^2 + XY + X/Y;

18.Z = (1 + X * Y)/2;

19.Z = -(1-Y)/(1+X);

20.Z = -X*(1-XY);

21.Z = Y+X/Y-1;

22.Z = 5/XY+X^3;

23.Z = -X + Y^3 - 1;

24.Z = X^3 / (X-Y);

25.Z = X^3 -2X^2*Y+1;

26.Z = -3X + Y^2 +1;

27.Z = -(X/Y +1)/Y^2;

28.Z = 1+X^2/3Y;

29.Z = Y-X/3+1;

30.Z = (XY)^3 +1/Y.

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

1. Двоичная форма представления целых чисел.

2. Дополнительный код.

3. Шестнадцатиричная форма представления целых чисел.

4. BCD и ASCII-форматы целых чисел;

5. Как объявляются поля данных размера DB, DW, DD.

6. Структура флагового регистра.

7. Форматы, предназначение и алгоритмы работы арифметических команд целочисленного устройства: add, adc, xadd, sub, sbb, imul, mul, idiv, div, inc, dec, neg; aaa, aas, aam, aad; or, xchg.

 

 

Лабораторная работа №5

Основные характеристики, области применения ЭВМ различных классов. Определение типа и состава компьютера

Цель работы

Определение типа и состава компьютера

 

Общие сведения

Для наиболее распространенных моделей персональных компьютеров конфигурация аппаратных средств задается установкой перемычек на системной плате (motherboard) и платах контроллеров периферийных устройств, а также записывается в область данных BIOS и в энергонезависимую память CMOS специальной программой BIOS Setup.







Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.