Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labramo-ar-log.doc
Скачиваний:
10
Добавлен:
10.02.2015
Размер:
253.95 Кб
Скачать

Упражнения

Для каждого из приведённых ниже заданий написать программу на ассемблере, используя среду WinIDE. Отладить программу с помощью программы Simulator. Убедиться в правильности выполнения программы. Объяснить полученные результаты и содержимое регистра признаков. Сохранить копии экранов с результатами работы программ в файлах.

Вариант 1

  1. Используя непосредственный способ адресации, перешлите десятичные числа 56 и 83 в ячейки памяти 40 и 41 соответственно. Результат сложения этих чисел запишите в ячейку памяти 42, используя прямой способ адресации. Посмотрите содержимое ячеек памяти 40, 41, 42.

  2. Сложите два числа 07 и 04, используя непосредственный способ адресации. Результат запишите в ячейку памяти с адресом 101. Из полученного результата вычтите число 06, хранящееся по адресу 110, используя прямой способ адресации. Результат запишите в ячейку памяти 102, используя индексный способ адресации. Полученный результат помножьте на число 02. Результат запишите в ячейку памяти 103. Очистите регистр АСС. Полученный результат поделите на число 5. Результат запишите в ячейку памяти 104. Посмотрите содержимое регистров АСС, Х и ячеек памяти 101, 102, 103, 104.

  3. Запишите число 44 в аккумулятор. Сделайте поразрядную логическую инверсию числа в аккумуляторе. Перешлите результат в регистр Х.. Снова сделайте поразрядную логическую инверсию числа в регистре А. Перешлите результат из аккумулятора в регистр Н. Посмотрите результат, полученный в регистре Н:Х.

  4. Проверьте наличие 1 во втором и в пятом разрядах числа в регистре X (число задаётся преподавателем). Запишите в регистр Н число FF, если в этих разрядах установлена единица, и запишите в регистр Н число 00 в любом другом случае.

  5. Запишите в регистр Х код ЕЕ, если число в регистре А больше 2 и меньше 7. В другом случае запишите в регистр Х код 00. Число в регистре А задаётся преподавателем.

  6. Сделайте проверку наличия 0 в каком-либо разряде аккумулятора (число в аккумуляторе задаётся преподавателем) и запишите в регистр Х номер этого разряда. Если установлены несколько разрядов в 0, то запишите их количество в регистр Н, а номера разрядов в ячейки памяти, начиная с адреса 40.

  7. Запишите в ячейку памяти с адресом 50 число ВВ. Выполните над этим числом различные варианты сдвигов влево(ASL, LSL, ROL), записывая результат каждой операции сдвига последовательно в ячейки памяти (51, 52, 53). Полученные числа сложите и результат запишите в ячейку памяти с адресом 54. Посмотрите содержимое ячеек памяти 51, 52, 53, 54.

  8. Запишите в регистр А число 0F. Сделайте 4 циклических сдвига влево. Результат запишите в ячейку памяти с адресом 100. Произведите в аккумуляторе циклический сдвиг вправо до тех пор, пока не инвертируется содержимое флага С. Посмотрите содержимое аккумулятора и регистра признаков.

  9. Из двух однобайтовых чисел 78 и 3С составьте последовательность чисел 73, 7С, 83, 8С и запишите их в ячейки памяти, начиная с адреса 65, используя индексную адресацию. Посмотрите содержимое ячеек памяти 65, 66, 67, 68.

  10. Запишите в регистр АСС число FF. С помощью непосредственного вычитания вычтите из (АСС) число 0Е. Если результат вычитания окажется отрицательным, то инвертируйте аккумулятор и повторяйте команду непосредственного вычитания числа 0Е из (АСС) до тех пор, пока результат этого вычитания не станет положительным. Посмотрите содержимое регистра АСС и ССR.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]