- •Команды обработки данных и передачи управления для микроконтроллера mc68hc908gp32
- •Удк 621.375(03)
- •1. Команды арифметических операций
- •2. Команды логических операций
- •3. Команды сдвигов
- •4. Команды битовых операций
- •5. Команды управления программой и процессором
- •6. Маскирование данных и организация условных переходов
- •Упражнения
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Список литературы:
Вариант 4
Сложите два числа 08 и 05, используя непосредственный способ адресации. Результат запишите в ячейку памяти с адресом B1. Из полученного результата вычтите число 06, хранящееся по адресу B0, используя прямой способ адресации. Результат запишите в ячейку памяти B2, используя индексный способ адресации c пост - инкрементом. Полученный результат помножьте на число 6. Результат запишите в ячейку памяти B3. Очистите регистр АСС. Полученный результат поделите на число 2. Результат запишите в ячейку памяти B4. Посмотрите и объясните содержимое ячеек памяти В1, В2, В3, В4.
Запишите 10 произвольных чисел в ячейки памяти, начиная с адреса 50, и складывайте эти числа до тех пор, пока не установится бит переноса. Адрес числа, после сложения с которым установился бит переноса, запишите в две ячейки памяти 100 и 101. Посмотрите содержимое этих ячеек памяти.
Сложите два 4-х байтовых числа:18A903E6 и B5C2F074. Результат сложения этих чисел сохраните в 4-х последовательных ячейках памяти, начиная с адреса 90. Посмотрите содержимое использованных ячеек памяти.
Проверьте наличие 1 в третьем и четвёртом разрядах числа в регистре X (число задаётся преподавателем). Запишите в регистр Н число FF, если в этих разрядах установлена единица, и запишите в регистр Н число 00 в любом другом случае.
Запишите в регистр Х код ВВ, если число в регистре А больше 2 и меньше 6. В другом случае запишите в регистр Х код 00. Число в регистре А задаётся преподавателем.
Запишите в ячейку памяти с адресом 80 число ЕЕ. Выполните над этим числом различные варианты сдвигов вправо(ASR, LSR, ROR), запишите результат каждой операции сдвига в последующие ячейки памяти (81, 82, 83). Полученные числа сложите и результат запишите в ячейку памяти с адресом 84. Посмотрите содержимое ячеек памяти с адресами 81, 82, 83, 84.
Сделайте проверку наличия 0 в каком-либо разряде аккумулятора (число в аккумуляторе задаётся преподавателем) и запишите в регистр Х номер этого разряда. Если установлены несколько разрядов в 0, то определите их количество (регистр Н) и номера разрядов (в ячейках памяти, начиная с адреса 70). Посмотрите содержимое регистров АСС, Х и использованных ячеек памяти.
Запишите в регистр А число F8. Сделайте 4 циклических сдвига вправо. Результат запишите в ячейку памяти с адресом 130. Произведите в аккумуляторе циклический сдвиг влево до тех пор пока не инвертируется содержимое флага С. Посмотрите содержимое регистра аккумулятора и регистра признаков.
Из двух однобайтовых чисел 7E и F2 составьте последовательность чисел 7F, 72, EF, E2 и запишите их в ячейки памяти, начиная с адреса 90, используя индексную адресацию. Посмотрите содержимое использованных ячеек памяти.
Запишите в регистр А число 07, в индексный регистр Н:Х – число 130, а в ячейку памяти с адресом 130 – число 83. Сложите (А) и (130). Если получилось отрицательное число, перейдите к подпрограмме, начинающейся с адреса 140, и с помощью подпрограммы вычислите дополнительный код (А). Вернитесь в основную программу и запишите (А) в (130). Посмотрите содержимое регистра АСС и ячейки памяти с адресом 130. Объясните полученные результаты.