- •Команды обработки данных и передачи управления для микроконтроллера mc68hc908gp32
- •Удк 621.375(03)
- •1. Команды арифметических операций
- •2. Команды логических операций
- •3. Команды сдвигов
- •4. Команды битовых операций
- •5. Команды управления программой и процессором
- •6. Маскирование данных и организация условных переходов
- •Упражнения
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Список литературы:
Упражнения
Для каждого из приведённых ниже заданий написать программу на ассемблере, используя среду WinIDE. Отладить программу с помощью программы Simulator. Убедиться в правильности выполнения программы. Объяснить полученные результаты и содержимое регистра признаков. Сохранить копии экранов с результатами работы программ в файлах.
Вариант 1
Используя непосредственный способ адресации, перешлите десятичные числа 56 и 83 в ячейки памяти 40 и 41 соответственно. Результат сложения этих чисел запишите в ячейку памяти 42, используя прямой способ адресации. Посмотрите содержимое ячеек памяти 40, 41, 42.
Сложите два числа 07 и 04, используя непосредственный способ адресации. Результат запишите в ячейку памяти с адресом 101. Из полученного результата вычтите число 06, хранящееся по адресу 110, используя прямой способ адресации. Результат запишите в ячейку памяти 102, используя индексный способ адресации. Полученный результат помножьте на число 02. Результат запишите в ячейку памяти 103. Очистите регистр АСС. Полученный результат поделите на число 5. Результат запишите в ячейку памяти 104. Посмотрите содержимое регистров АСС, Х и ячеек памяти 101, 102, 103, 104.
Запишите число 44 в аккумулятор. Сделайте поразрядную логическую инверсию числа в аккумуляторе. Перешлите результат в регистр Х.. Снова сделайте поразрядную логическую инверсию числа в регистре А. Перешлите результат из аккумулятора в регистр Н. Посмотрите результат, полученный в регистре Н:Х.
Проверьте наличие 1 во втором и в пятом разрядах числа в регистре X (число задаётся преподавателем). Запишите в регистр Н число FF, если в этих разрядах установлена единица, и запишите в регистр Н число 00 в любом другом случае.
Запишите в регистр Х код ЕЕ, если число в регистре А больше 2 и меньше 7. В другом случае запишите в регистр Х код 00. Число в регистре А задаётся преподавателем.
Сделайте проверку наличия 0 в каком-либо разряде аккумулятора (число в аккумуляторе задаётся преподавателем) и запишите в регистр Х номер этого разряда. Если установлены несколько разрядов в 0, то запишите их количество в регистр Н, а номера разрядов в ячейки памяти, начиная с адреса 40.
Запишите в ячейку памяти с адресом 50 число ВВ. Выполните над этим числом различные варианты сдвигов влево(ASL, LSL, ROL), записывая результат каждой операции сдвига последовательно в ячейки памяти (51, 52, 53). Полученные числа сложите и результат запишите в ячейку памяти с адресом 54. Посмотрите содержимое ячеек памяти 51, 52, 53, 54.
Запишите в регистр А число 0F. Сделайте 4 циклических сдвига влево. Результат запишите в ячейку памяти с адресом 100. Произведите в аккумуляторе циклический сдвиг вправо до тех пор, пока не инвертируется содержимое флага С. Посмотрите содержимое аккумулятора и регистра признаков.
Из двух однобайтовых чисел 78 и 3С составьте последовательность чисел 73, 7С, 83, 8С и запишите их в ячейки памяти, начиная с адреса 65, используя индексную адресацию. Посмотрите содержимое ячеек памяти 65, 66, 67, 68.
Запишите в регистр АСС число FF. С помощью непосредственного вычитания вычтите из (АСС) число 0Е. Если результат вычитания окажется отрицательным, то инвертируйте аккумулятор и повторяйте команду непосредственного вычитания числа 0Е из (АСС) до тех пор, пока результат этого вычитания не станет положительным. Посмотрите содержимое регистра АСС и ССR.