- •1. Теоретическая часть.
- •1.1.Группа команд арифметических операций
- •Группа команд логических операций.
- •2. Практическая часть.
- •2.1. Примеры использования арифметических команд.
- •Команды загрузки регистров а и х данными из памяти.
- •Команды вычитания.
- •Команды инкремента и декремента.
- •0050 80 7E 7c 7a 78 76 74 72 70 6e 6c 6a 68 66 64 62
- •0060 60 5E 5c 5a 58 56 54 52 50 4e 4c 4a 48 46 44 42 ' Команды умножения и арифметического дополнения.
- •2.2.Примеры использования команд байтовой логики.
- •2.3.Примеры использования команд сдвига.
- •Команды логического (или последовательного) сдвига.
- •Команды арифметического сдвига.
- •Команды циклического сдвига.
- •2.4. Примеры использования команд сравнения и тестирования. Команды сравнения.
- •0050 00 01 02 03 04 05 06 07 08 09 0A 0b 0c 0d 0e 0f ................
- •0060 00 01 02 03 04 05 06 07 08 09 0A 0b 0c 0d 0e 0f ................
- •0050 00 Ff fe fd fc fb fa f9 f8 f7 f6 f5 f4 f3 f2 f1 ................
- •0060 Ff fe fd fc fb fa f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 ................
- •Команды тестирования.
- •0050 00 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 ................
- •0050 06 01 02 03 04 05 06 00 00 00 00 00 00 00 00 00 ................
- •Контрольные вопросы.
- •Задания.
Задания.
1. Написать программу сложения или вычитания двух n-байтовых чисел, где числоnбудет являться параметром.
2. Написать программу, вычисляющую сумму чисел от 1доnс помощью цикла.
3. Написать программу, вычисляющую первые nчисел Фибоначчи. (Т.е. последовательность, в которой каждый последующий член является суммой двух предыдущих: 0,1,1,2,3,...)
4. Написать программу нахождения наибольшего общего делителя по алгоритму Евклида. (Берется исходная пара чисел. Из большего числа вычитается меньшее, потом меньшее число из первой пары и разность первой пары становятся следующей парой, и алгоритм повторяется снова до тех пор, пока в паре не окажутся одинаковые числа. Это и будет наибольшим общим делителем.)
5. Написать программы умножения и деления, используя команды сложения и вычитания.
6. Написать программу поиска максимального элемента в массиве.
7. Реализовать логические операции, таблицы истинности которых приведены ниже:
-
"стрелка Пирса"
"штрих Шеффера"
A
B
A¯B
A
B
A½B
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
8. Написать программу, записывающую последовательность бит в аккумуляторе в обратном порядке (00100111®11100100).
9. Написать программу, записывающую в старшую тетраду аккумулятора зеркальное отображение младшей (11110011®11000011).
10. Написать программу, осуществляющую преобразование числа в его символьное представление в коде ASCII в восьмиричной системе счисления.
11. Написать программу, осуществляющую преобразование числа в его символьное представление в коде ASCII в десятичной системе счисления.
Указание: воспользоваться подпрограммой деления.
12. Написать программу, осуществляющую преобразование числа из его символьного представления в коде ASCII в восьмиричной системе счисления.
13. Написать программу которая копирует младшие биты байтов $50-$57 в биты байта $58; младший бит байта $58 соответствует биту, взятому из байта $50.
14. Написать программу, инвертирующую бит nв ячейке $dd, гдеnпередается в аккумуляторе, а адресdd-в регистреX.
15. Написать программу, расширяющую значение байта $50 в 4 последующих байта следующем образом: тетрада каждого из этих четырех байт равна $F, если установлен соответствующий бит в ячейке $50 и $0, если бит сброшен.
MЭИ, Научно-методический центр фирмы Motorola