zadanie_1_spo_2020 (Задание 1)
Описание файла
Документ из архива "Задание 1", который расположен в категории "". Всё это находится в предмете "системное программное обеспечение (спо)" из 5 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "zadanie_1_spo_2020"
Текст из документа "zadanie_1_spo_2020"
ОБЩАЯ ФОРМУЛИРОВКА ВОЗМОЖНЫХ ТИПОВ ИНД. ЗАДАНИЙ в рамках 2-ой части курса «Системное программное обеспечение» (СПО ИДДО)
(конечный перечень актуальных вариантов задач приводится в отдельном файле)
А. Реализуйте на ассемблере программу, выполняющую следующие действия над набором целых чисел A[i], имеющих следующие параметры (см. Таблицу А), где i – порядковый номер числа в наборе, и операндами B и C; результат поместить в A[i]:
1) выполните логическую операцию «НЕ»: ¬A[i]
2) выполните логическую операцию «И»: A[i] & B
3) выполните логическую операцию «ИЛИ»: A[i] v B
4) выполните логическую операцию «сложение по модулю 2»: (A[i] + B)
5) выполните логическую операцию «стрелка Пирса»: A[i] ↑ B
6) выполните логическую операцию «штрих Шеффера»: A[i] / B
7) выполните логическую операцию «эквивалентность»: A[i] ≡ B
8) выполните операцию арифметического сложения: A[i] + B
9) выполните операцию арифметического вычитания: A[i] - B
10) выполните операцию арифметического умножения: A[i] · С
10) выполните операцию арифметического деления: A[i] / С
Рекомендуется соблюдать порядок выполнения указанных действий, обозначенных в конечном варианте задания. Все исходные числа представлены в дополнительном коде.
Таблица А – Параметры используемых переменных в рамках заданий типа «А»
Набор A | Операнд B | Операнд C | Требуемые действия | ||||||
Кол-во элементов | Знаковое | Размер числа, байт | Расположение в памяти | Адресация | |||||
«1» – да | 1 | «1» – внутреннее ОЗУ | «1» – прямая | «0» – отсутствует | |||||
«0» – нет | 2 | «2» – во внешнем ОЗУ* | «2» – косвенная | «1» – целое беззнаковое 2-байтовое число | |||||
4 | «2» – целое беззнаковое 1-байтовое число | ||||||||
«3» – целое знаковое 2-байтовое число | |||||||||
«4» – целое знаковое 1-байтовое число | |||||||||
* — выбранный вами контроллер должен иметь «встроенную» на кристалле микросхемы память класса XDATA, внешнюю по отношению к памяти ядра контроллера |
Пример записи варианта задания:
А-3-0-2-1-1-2-0-[2,5,8]
Расшифровка: задание типа «А» – массив A[i] с кол-вом элементов 3, числа беззнаковые двубайтные, расположены во внутреннем ОЗУ, для доступа к ним применяется прямая адресация; операнд В – целое беззнаковое однобайтное число; операнд С отсутствует; требуется выполнить лог. операции «ИЛИ», «стрелка Пирса» и арифм. операцию сложения.
Б. Закодируйте на ассемблере подпрограмму, выполняющую следующие комбинации f1, f2, f3, f4 логических и арифметических операций над целыми беззнаковыми __-байтными числами x, y, z, t, q. Аналитические выражения, описывающие соответствующие логические комбинации, предоставляются отдельно в файле с вариантами задания. Здесь используются следующие обозначения: & – конъюнкция («И»), V – дизъюнкция («ИЛИ»), → – импликация, ↑ – стрелка Пирса, / – штрих Шеффера, + – сложение по модулю 2, ≡ – эквивалентность, черта сверху – отрицание («НЕ»). Все исходные числа представлены в прямом коде. Протестируйте программу и приведите примеры.
Примечание: выражение xy или x·y означает не алгебраическое произведение, а сокращенную форму написания логической операции конъюнкции, если не указано иное. В качестве примера можно выбрать значения переменных x, y, z, t, q равными 1, 2, 3, 4, 5 соответственно.
Вместе с этим, необходимо выполнить следующие действия над результатами f1, f2, f3, f4:
1) полученный результат в виде числа сложить с x; итоговый результат должен быть представлен в виде 2-байтного числа.
2) полученный результат в виде числа сложить с y; итоговый результат должен быть представлен в виде 2-байтного числа.
3) полученный результат в виде числа сложить с z; итоговый результат должен быть представлен в виде 2-байтного числа.
4) полученный результат в виде числа сложить с t; итоговый результат должен быть представлен в виде 2-байтного числа.
5) все полученные результаты в виде чисел сложить друг с другом; итоговый результат должен быть представлен в виде 2-байтного числа.
6) из первого полученного результата в виде числа вычесть второй результат также в виде числа; итоговый результат должен быть представлен в виде 2-байтного числа.
7) из второго полученного результата в виде числа вычесть первый результат также в виде числа; итоговый результат должен быть представлен в виде 2-байтного числа.
8) сравнить полученные результаты в виде чисел; из большего числа вычесть меньшее.
сравнить полученные результаты в виде чисел; к меньшему числу добавить большее число, сбросив предварительно четыре старших разряда.
9) из первого результата в виде числа вычесть второй результат также в виде числа; если первое число окажется меньше второго, то умножить первое число в два раза;
10) из второго результата в виде числа вычесть первый результат также в виде числа; если первое число окажется больше второго, то умножить второе число в три раза.
Таблица Б – Параметры используемых переменных в рамках заданий типа «Б»
Числа x, y, z, t, q | Конечный результат вывести | Требуемые действия | ||
Размер, байт | Расположение в памяти | Адресация | ||
1 | «1» – внутреннее ОЗУ | «1» – прямая | «1» – на выводы портов микроконтроллера (Px – Px+1), например, P0-P1 (ст.-мл.) | |
2 | «2» – во внешнем ОЗУ* | «2» – косвенная | «2» – в регистры внутреннего ОЗУ банка регистров (Rx+1 – Rx), например, R2-R1 (ст.-мл.), используется банк регистров № 0 | |
4 | «3» – -//-, используется банк регистров № 1 | |||
«4» – -//-, используется банк регистров № 2 | ||||
«5» – -//-, используется банк регистров № 3 | ||||
«6» – в регистры-аккумуляторы А и В (ст.-мл.) | ||||
«7» – в регистр DPTR | ||||
* — выбранный вами контроллер должен иметь «встроенную» на кристалле микросхемы память класса XDATA, внешнюю по отношению к памяти ядра контроллера |
Пример записи варианта задания:
Б-2-1-2-1-[1,4,10]
Расшифровка: задание типа «Б» – используемые числа беззнаковые двубайтные, расположены во внутреннем ОЗУ, для доступа к ним применяется косвенная адресация; конечный результат выводится в порты Р0-Р1 (ст.-мл.); требуемые действия над результатами f1, f2, f3 соотв. п.п. 1, 4, 10.
В. Закодируйте на ассемблере подпрограмму или макрокоманду (в зависимости от варианта) в соответствии со следующими требованиями. Протестируйте полученную программу.
1) Вычитание с переносом любых двух регистров внутреннего ОЗУ МК-51. Результат поместить в регистр, указанный вторым параметром макроса.
2) Возведение беззнакового целочисленного числа в степень (беззнаковое целочисленное однобайтовое значение). Данные находятся в регистрах внутреннего ОЗУ МК-51 и передаются как параметры макроса или подпрограммы (функции). Результат – 2-байтное число, размещенное в регистрах, указанных в параметрах.
Примечание: в целях упрощения реализации программы и предотвращения переполнения результата возведения в степень рекомендуется в качестве примера выбирать значение степени не более 2-3.
3) Умножение 2-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51. Результат – 4-байтное число.
4) Проверка на равенство 4-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51.
5) Сложение 2-байтовых знаковых целых чисел, прямо адресуемых во внутреннем ОЗУ МК-51. Исходные числа представлены в дополнительном коде. Результат – 4-байтное число.
6) Вычитание 2-байтовых знаковых целых чисел, прямо адресуемых во внутреннем ОЗУ МК-51. Числа представлены в дополнительном коде.
7) Сложение любых двух регистров внутреннего ОЗУ МК-51. Результат поместить в регистр, указанный первым параметром макроса или подпрограммы.
8) Вычитание без переноса любых двух регистров внутреннего ОЗУ МК-51. Результат поместить в регистр, указанный первым параметром макроса или подпрограммы.
9) Умножение любых двух регистров внутреннего ОЗУ МК-51. Результат поместить в регистр, указанный первым параметром макроса или подпрограммы.
10) Деление любых двух регистров внутреннего ОЗУ МК-51. Результат поместить в регистр, указанный первым параметром макроса или подпрограммы.
11) Сложение 2-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51.
12) Вычитание 2-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51.
13) Умножение 2-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51.
14) Деление 2-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51.
15) Сравнение 2-байтовых беззнаковых целых чисел, косвенно адресуемых во внутреннем ОЗУ МК-51.
16) Умножение 2-байтовых знаковых целых чисел, прямо адресуемых во внутреннем ОЗУ МК-51. Числа представлены в дополнительном коде. Результат – 2-байтное число.
17) Умножение 2-байтовых знаковых целых чисел, прямо адресуемых во внутреннем ОЗУ МК-51. Числа представлены в дополнительном коде. Результат – 4-байтное число.
18) Сравнение 2-байтовых знаковых целых чисел, прямо адресуемых во внутреннем ОЗУ МК-51. Числа представлены в дополнительном коде.
19) Арифметический сдвиг вправо 2-байтовой переменной, образованной любыми ячейками внутреннего ОЗУ МК-51. Параметры макрокоманды или функции: N — число сдвигов; Argl, Arg2 — ячейки/регистры внутреннего ОЗУ МК-51.
20) Логический сдвиг вправо 2-байтовой переменной, образованной любыми ячейками внутреннего ОЗУ МК-51. Параметры макрокоманды или функции: N — число сдвигов; Argl, Arg2 — ячейки/регистры внутреннего ОЗУ МК-51.
21) Логический сдвиг влево 2-байтовой переменной, образованной любыми ячейками внутреннего ОЗУ МК-51. Параметры макрокоманды или функции: N — число сдвигов; Argl, Arg2 — ячейки/регистры внутреннего ОЗУ МК51.
22) Логический сдвиг вправо 2-байтовой переменной, образованной любыми ячейками внутреннего ОЗУ МК-51. Параметры макрокоманды или функции: N — число сдвигов; Argl, Arg2 — ячейки/регистры внутреннего ОЗУ МК-51.
23) Сложение любых двух ячеек памяти внутреннего ОЗУ МК-51, косвенно адресуемых. Результат поместить в ячейку, указанную вторым параметром макроса или функции.
ВНИМАНИЮ всех студентов! Обязательно посмотрите дополнительный материал в виде презентации по представлению чисел в цифровых электронно-вычислительных устройствах, в частности микроконтроллерах.