Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДИЧНІ ВКАЗІВКИ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
409 Кб
Скачать
☆
  1. Варіанти завдань до лабораторної роботи №2

На мові програмування асемблер скласти програму, що обчислює нижче наведені вирази:

    1. обчислення арифметичного виразу: Z=36*12+289/(19-17mod3)

    2. протабулювати функцію F(X)=cos(x1/2)arcsin(x/7)*22*x для x від 0 до 2 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=18/2+529/(2*7+19mod10)

    2. протабулювати функцію F(X)=log2(x1/2)arctg(x/7)*86*x для x від 0.01 до 1.62 з кроком 0,18.

    3. Обчислити функцію

    1. обчислення арифметичного виразу:

Z=3*(2+18)+121/(19-17mod10)

    1. протабулювати функцію F(X)=exp(x1/2)arcsin(x/2)*0.522.3*x для x від 1 до 2.1 з кроком 0,14.

    2. Обчислити функцію

    1. обчислення арифметичного виразу: Z=118mod12+1089/(21+2*(3+3))

    2. протабулювати функцію F(X)=log2(exp(x1/2))*0.240.16*x для x від 0.016 до 2.36 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=36*12+289/(19-17mod7).

    2. протабулювати функцію F(X)=cos(2x-2.3)*arcsin(x/7)*22*x для x від 0 до 2 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=3*2/4+811/(27+41mod6).

    2. протабулювати функцію F(X)=tg(sin(arctg(x1/2)))*0.3x/2 для x від 0.32 до 2.24 з кроком 0,21.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=9*12/4+1681/(59+26mod4-6*3-2)

    2. протабулювати функцію F(X)=exp(cos(x1/2))*tg(22*x) для x від 0 до 2 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=30*12+324/(20-17mod3)

    2. протабулювати функцію F(X)=sin(x1/2)arcsin(x/7)*22*x для x від 0 до 2 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=20*2+169/(14-10mod3)

    2. протабулювати функцію F(X)=exp(x1/2)arcsin(x/7)*22*x для x від 0 до 2 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=36/12+196/(16-17mod3)

    2. протабулювати функцію F(X)=tg(sin(arctg(x1/2)))*0.6x для x від 0.32 до 2.24 з кроком 0,21.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=25*3+225/(17-17mod3)

    2. протабулювати функцію F(X)=sin(2x-2.3)*arcsin(x/7)*2x для x від 0 до 2 з кроком 0,24.

    3. Обчислити функцію

    1. обчислення арифметичного виразу: Z=26*2+324/(19-21mod5)

    2. протабулювати функцію F(X)=exp(x2)arcsin(x)*0.54.3*x для x від 1 до 2.1 з кроком 0,13.

    3. Обчислити функцію

*При виконанні програми слід враховувати, що аргументом прямих тригонометричних функцій може бути число від -2 до 2

Лабораторна робота №3

Тема. Логічні операції мови програмування асемблер.

Мета. Вивчити логічні команди процесорів серії х86, набути практичних навичок складання і відлагодження програм з використанням набору логічних команд.

  1. Опис логічних операцій мови програмування асемблер

Асемблер має розвинену структуру логічних операторів, що дозволяє будувати в програмі складну розгалужену систему булевої логіки. Всі логічні операції проводяться побітово між бітами одного операнда команди та відповідними бітами другого операнда команди.

AND - Логiчне I

код операції

команда

число тактових циклів

опис

24 ib

AND AL,imm8

1

Операцiя логiчного I для без-посереднього байта та AL

25 iw

AND AX,imm16

1

Операцiя логiчного I для без-посереднього слова та AX

25 id

AND EAX,imm32

1

Операцiя логiчного I для без-посереднього подвiйного слова та EAX

80 /4 ib

AND r/m8,imm8

1/3

Операцiя логiчного I для без-посереднього байта та байта в r/m

81 /4 iw

AND r/m16,imm16

1/3

Операцiя логiчного I для без-посереднього слова та слова в r/m

81 /4 id

AND r/m32,imm32

1/3

Операцiя логiчного I для без-посереднього подвiйного слова та подвiйного слова в r/m

83 /4 ib

AND r/m16,imm8

1/3

Операцiя логiчного I для

безпосереднього розширеного знаком байта та слова в r/m

83 /4 ib

AND r/m32,imm8

1/3

Операцiя логiчного I для

безпосереднього розширеного знаком слова та подвiйного слова в r/m

20 /r

AND r/m8,r8

1/3

Операцiя логiчного I для байтового регiстра та байта в r/m

21 /r

AND r/m16,r16

1/3

Операцiя логiчного I для регiстра слова та слова в r/m

21 /r

AND r/m32,r32

1/3

Операцiя логiчного I для

регiстра подвiйного слова та подвiйного слова в r/m

22 /r

AND r8,r/m8

1/2

Операцiя логiчного I для байта в r/m та байтового регiстра

23 /r

AND r16,r/m16

1/2

Операцiя логiчного I для слова в r/m та регiстра слова

23 /r

AND r32,r/m32

1/2

Операцiя логiчного I для

подвiйного слова в r/m та регiстра подвiйного слова

код операції

команда

число тактових циклів

опис

24 ib

AND AL,imm8

1

Операцiя логiчного I для без-посереднього байта та AL

25 iw

AND AX,imm16

1

Операцiя логiчного I для без-посереднього слова та AX

25 id

AND EAX,imm32

1

Операцiя логiчного I для без-посереднього подвiйного слова та EAX

80 /4 ib

AND r/m8,imm8

1/3

Операцiя логiчного I для без-посереднього байта та байта в r/m

81 /4 iw

AND r/m16,imm16

1/3

Операцiя логiчного I для без-посереднього слова та слова в r/m

81 /4 id

AND r/m32,imm32

1/3

Операцiя логiчного I для без-посереднього подвiйного слова та подвiйного слова в r/m

83 /4 ib

AND r/m16,imm8

1/3

Операцiя логiчного I для

безпосереднього розширеного знаком байта та слова в r/m

Робота команди:

DEST < DEST AND SRC;

CF < 0;

OF < 0;

Опис:

Кожний бiт результату виконання команди AND рiвний 1, якщо обидва вiдповiдних бiти операндiв рiвнi 1; в противному випадку бiт результату рiвний 0.

Змiнюванi прапорцi:

Прапорцi CF та OF очищюються ; прапорцi PF, SF та ZF встановлюються у вiдповiдностi до результату.

Винятки захищеного режиму:

#GP(0), якщо результат повинен помiщатись в сегмент, для якого заборонений запис; #GP(0) у випадку недопустимої виконуваної адреси операнда памятi в сегментах CS, DS, ES, FS або GS; #SS(0) у випадку недопустимої адреси в сегментi SS; #PF(код збою) у випадку сторiнкового збою; #AC для невирiвняного посилання до пам"ятi при рiвнi привiлейованостi, рiвному 3.

Винятки режиму реальних адрес:

Переривання 13, якщо частина операнда лежить поза простором виконуваних адрес вiд 0 до 0FFFFH.

Винятки вiртуального режиму 8086:

Тi ж винятки, що i для режиму реальних адрес: #PF (код збою) для сторiнкових збоів ; #AC для невирiвняного посилання до памятi при рiвнi привiлейованостi - 3.

NOT - Заперечення з доповненням до одного (порозрядне доповнення)

код операції

команда

число тактових циклів

опис

F6 /2

NOT r/m8

1/3

Змiна на протилежне значення кожного бiта в байтi r/m байтi r/m

F7 /2

NOT r/m16

1/3

Змiна на протилежне значения кожного бiта в словi r/m

F7 /2

NOT r/m32

1/3

Змiна на протилежне значения кожного бiта в подвiйному словi r/m

Робота команди:

r/m < NOT r/m.

Опис:

Команда NOT інвертує операнд: кожна 1 стає 0, та навпаки.

Прапорцi, що змінюються:

Вiдсутнi.

Винятки захищеного режиму:

#GP(0), якщо призначенням є сегмент, що є недоступним для

запису; #GP(0) у випадку недопустимої виконуваної адреси операнда пам’ятi в сегментах CS, DS, ES, FS або GS; #SS(0) у випидку недопустимої адреси в сегментi SS; #PF(код збою) у випадку сторiнкового збою; #AC для невирiвняного посилання до пам’ятi при рiвнi привiлейованостi - 3.

Винятки режиму реальних адрес:

Переривання 13, якщо частина операнда лежить поза простором виконуваних адрес вiд 0 до 0FFFFH.

Винятки вiртуального режима 8086:

Тi ж винятки, що i для режиму реальних адрес: #PF (код збою) для сторiнкових збоїв . #AC для невирiвняного посилання до пам’ятi при рiвнi привiлейованостi, рiвному 3.

OR - Логiчне АБО

код операції

команда

число тактових циклів

опис

0C ib

OR AL,imm8

1

Операцiя логiчного АБО безпо-середнього байта та AL безпосереднього байта та AL байтi r/m

0D iw

OR AX,imm16

1

Операцiя логiчного АБО безпо-середнього байта та AX

0D id

OR EAX,imm32

1

Операцiя логiчного АБО безпо-середнього подвiйного слова та EAX

80 /1 ib

OR r/m8,imm8

1/3

Операцiя логiчного АБО безпо-середнього байта та байта в r/m

81 /1 iw

OR r/m16,imm16

1/3

Операцiя логiчного АБО безпо-середнього слова та слова в r/m

81 /1 id

OR r/m32,imm32

1/3

Операцiя логiчного АБО безпо-середнього подвiйного та подвiйного в r/m

83 /1 ib

OR r/m16,imm8

1/3

Операцiя логiчного АБО безпо-середнього розширеного знаком байта та слова в r/m

81 /1 ib

OR r/m32,imm8

1/3

Операцiя логiчного АБО безпо-середнього розширеного знаком слова та подвiйного слова в r/m

08 /r

OR r/m8,r8

1/3

Операцiя логiчного АБО бай-тового регiстра та байта в r/m

09 /r

OR r/m16,r16

1/3

Операцiя логiчного АБО регiстра слова та слова в r/m

09 /r

OR r/m32,r32

1/3

Операцiя логiчного АБО регiстра подвiйного слова та подвiйного слова в r/m

0A /r

OR r8,r/m8

1/2

Операцiя логiчного АБО байта в r/m та байтового регiстра

0B /r

OR r16,r/m16

1/2

Операцiя логiчного АБО слова в r/m та регiстра слова

0B /r

OR r32,r/m32

1/2

Операцiя логiчного АБО под-вiйного слова в r/m та регiстра подвiйного слова

Робота команди:

DEST < DEST OR SRC;

CF < 0;

OF < 0;

Опис:

Команда OR обчислює включаюче АБО для її двох операндiв та розмiщує результат в першому операндi. Кожний бiт результату рiвний 0, якщо обидва вiдповiдних бiта операнда рiвнi 0; в противному випадку бiт результату рiвний 1.

Змiнюванi прапорцi:

Прапорцi CF та OF очищюються ; прапорцi PF, SF та ZF встановлюються у вiдповiдностi до результату; флаг AF невизначений.

Винятки захищеного режиму:

#GP(0), якщо результат повинен мiститися в сегментi, для якого заборонений запис ; #GP(0) у випадку недопустимоі виконуваноі адреси операнда пам’ятi в сегментах CS, DS, ES, FS або GS; #SS(0) у випадку недопустимоі адреси в сегментi SS; #PF(код збою) у випадку сторiнкового збою; #AC для невирiвняного посилання до пам’ятi при рiвнi привiлейованостi, рiвному 3.

Винятки режиму реальних адрес:

Переривання 13, якщо частина операнда лежить поза простором виконуваних адрес вiд 0 до 0FFFFH.

Винятки вiртуального режиму 8086:

Тi ж винятки, що i для режиму реальних адрес: #PF (код збою) для сторiнкових збоїв ; #AC для невирiвняного посилання до пам’ятi при рiвнi привiлейованостi, рiвному 3.

XOR - Логiчне виключаюче АБО

код операції

команда

число тактових циклів

опис

34 ib

XOR AL,imm8

1

XOR для безпосереднього байта та AL байтi r/m

35 iw

XOR AX,imm16

1

XOR для безпосереднього слова та AX байтi r/m

35 id

XOR EAX,imm32

1

XOR для безпосереднього подвiйного слова та EAX байтi r/m

80 /6 ib

XOR r/m8,imm8

1

XOR для безпосереднього байта та байта r/m

81 /6 iw

XOR r/m16,imm16

1/3

XOR для безпосереднього слова та слова r/m

81 /6 id

XOR r/m32,imm32

1/3

XOR для безпосереднього подвiйного слова та подвiйного слова r/m

83 /6 ib

XOR r/m16,imm8

1/3

XOR для безпосереднього розширеного знаком байта та слова r/m

83 /6 ib

XOR r/m32,imm8

1/3

XOR для безпосереднього розширеного знаком байта та подвiйного слова r/m

30 /r

XOR r/m8,r8

1/3

XOR для регiстра байта та байта r/m

31 /r

XOR r/m16,r16

1/3

XOR для регiстра слова та слова r/m

31 /r

XOR r/m32,r32

1/3

XOR для регiстра подвiйного слова та подвiйного слова r/m

32 /r

XOR r8,r/m8

1/2

XOR для регiстра байта та байта r/m

33 /r

XOR r16,r/m16

1/2

XOR для регiстра слова та слова r/m

33 /r

XOR r32,r/m32

1/2

XOR для регiстра подвiйного слова та подвiйного слова r/m

Робота команди:

DEST < LeftSRC XOR RightSRC;

CF < 0;

OF < 0;

Опис:

Команда XOR обчислює виключаюче АБО (XOR) для двох заданих їй операндiв. кожний бiт результату рiвний 1, якщо вiдповiднi бiти операндiв рiзнi; в противному випадку цей бiт рiвний 0. Результат заміщує собою перший операнд.

Змiнюванi прапорцi:

Прапорцi OF та CF очищюються; прапорцi SF, ZF та PF встановлюються в вiдповiдностi до результату; прапорець AF невизначений.

Винятки захищеного режима:

#GP(0), якщо призначенням є сегмент, що є недоступним для запису; #GP(0) у випадку недопустимої виконуваної адреси операнда пам’яті в сегментах CS, DS, ES, FS або GS; #SS(0) у випадку недопустимоі адреси в сегментi SS; #PF (код збою) у випадку сторiнкового збою; #AC для невирiвняного посилання до пам’ятi при рiвнi привiлейованостi, рiвному 3.

Винятки режима реальних адрес:

Переривання 13, якщо частина операнда лежить поза простором виконуваних адрес вiд 0 до 0FFFFH.

Винятки вiртуального режима 8086:

Тi ж винятки, що i для режиму реальних адрес: #PF (код збою) для сторiнкових збоїв. #AC для невирiвняного посилання до пам’ятi при рiвнi привiлейованостi, рiвному 3.