Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 3 - задание

.pdf
Скачиваний:
25
Добавлен:
18.05.2014
Размер:
75.43 Кб
Скачать

Задание на лабораторную работу №3 по МПУ. Линейные программы на языке ассемблера.

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

Задание

1.Написать программу, выполняющую следующие действия в соответствии с вариантом задания (номером бригады):

1.1Выполнить арифметические и логические операции над числами.

1.2Получить отрицательное представление числа в обратном и дополнительном коде.

1.3Сложить число с его обратным кодом, с дополнительным кодом. Получить модуль результата сложения с обратным кодом (код получения модуля числа должен правильно работать как для положительных, так и для отрицательных чисел).

1.4Перемножить числа.

1.5Поделить результат умножения на заданное число. Получить частное и остаток.

1.6Сохранить указанное число в оперативной памяти.

2Произвести отладку программы и заполнить таблицу с результатами выполнения арифметических и логических операций (см. требования к отчёту).

Внимание: При выполнении логических и арифметических операций использовать инструкции, устанавливающие флаги условий в регистре состояния программы.

 

Номер пункта задания

 

 

 

 

 

 

 

 

 

 

 

Бригада

1.1

1.2, 1.3

1.4

 

1.5

1.6

 

 

 

 

 

 

1

0x7FFFFFFF и 1: сложение;

1

5561 и 1939

16

остаток

 

0x80000001 и 2: вычитание;

 

 

 

 

 

 

0x4F и 0xF4: логическое «И»;

 

 

 

 

 

 

0xBEEF и 0x7411: логическое «исключающее ИЛИ»;

 

 

 

 

 

2

0x7FFFFFFE и 2: сложение;

3

4296 и 341

 

8

частное

 

0x80000003 и 4: вычитание;

 

 

 

 

 

 

0x80000001 и 0x7FFFFFFE: логическое «И-НЕ»;

 

 

 

 

 

 

0x5F5F и 0xF5F4: логическое «исключающее ИЛИ»;

 

 

 

 

 

3

0x25000002 и 0xDB000000: сложение;

2

14 и 893

 

32

частное

 

1 и 0x0100: вычитание;

 

 

 

 

 

 

0xFF005400 и 0xFFAB01: логическое «ИЛИ-НЕ»;

 

 

 

 

 

 

0x22 и 0x0113: логическое «И»

 

 

 

 

 

4

0x78FF и FFFF8702: сложение;

4

8729

и

32768

остаток

 

0x3AB и 0x3AD: вычитание;

 

73029

 

 

 

 

0x38400 и 0x7BFF: логическое «ИЛИ»;

 

 

 

 

 

 

0xBEE и 0xC0F400: логическое «исключающее ИЛИ»;

 

 

 

 

 

5

0x6A23004B и 15DCFFB5: сложение

8

653 и 38

 

64

остаток

 

0xA и 0xB3: вычитание;

 

 

 

 

 

 

0xF0000F и 0xAAAAAA; логическое «ИЛИ»;

 

 

 

 

 

 

0xEFFF и 0x1001: логическое «И-НЕ»;

 

 

 

 

 

6

0xFFFFFFFE и 3: сложение;

15

298 и 1842

 

2

частное

 

0x8000000E и 0x0F: вычитание;

 

 

 

 

 

 

0x44332211 и 0x55111155: логическое «исключающее

 

 

 

 

 

 

ИЛИ»;

 

 

 

 

 

 

0x25FF и 0xFFFFFF00: логическое «И»;

 

 

 

 

 

7

256 и 768: логическое «исключающее ИЛИ»;

5

67392 и 25

 

2048

частное

 

0x4F и 0xF4: логическое «ИЛИ»;

 

 

 

 

 

 

0x78FE и FFFF8705: сложение;

 

 

 

 

 

 

0x3 и 0xFFFFFFFE: вычитание;

 

 

 

 

 

Требования к отчёту

Отчёт должен содержать:

1.листинг программы (содержимое секций «.text», «.text.program», и «.data» в файле «.lst»);

2.таблицу с результатами выполнения арифметических и логических операций;

3.выводы.

Таблица с результатами выполнения арифметических и логических операций должна включать следующие обязательные столбцы:

1.адрес арифметический/логической инструкции;

2.мнемоника (по дизассемблированному коду из листинга);

3.расположение исходных операндов (регистры или адреса в памяти);

4.значения исходных операндов (в шестнадцатеричной и десятичной системе счисления);

5.расположение операнда назначения (регистр или адрес в памяти);

6.значение операнда назначения после выполнения инструкции (результат выполнения инструкции, в шестнадцатеричной и десятичной системе счисления);

7.флаги N, Z, C, V регистра состояния программы после выполнения инструкции.