Лабораторная работа 3 - задание
.pdfЗадание на лабораторную работу №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 регистра состояния программы после выполнения инструкции.