Микропроцессоры и МПС. Лабораторные работы №3-4

Практическая работа №3-4
Организация ветвлений и циклов на языке Ассемблера

Цель работы: сформировать умения применять условные и безусловные переходы при решении задач

Пояснения к работе

Команды переходов предназначены для организации всевозможных циклов, ветвлений, вызовов подпрограмм и т.д., то есть они нарушают последовательный ход выполнения программы.
Команды переходов без возврата делятся на две группы:
команды безусловных переходов;
команды условных переходов.
Команды переходов с дальнейшим возвратом в точку, из которой был произведен переход, применяются для выполнения подпрограмм, то есть вспомогательных программ. Эти команды называются также командами вызова подпрограмм.
Теперь перейдем к условным переходам. Никакого "if" на ассемблере нет и эту операцию приходится осуществлять в два этапа. Команда CMP позволяет сравнить два числа, сохраняя результат своей работы во флагах. Флаги - это биты специального регистра. Достаточно запомнить три основных состояния: меньше (bellow или less), больше (above или great) и равно (equal). Семейство команд условного перехода Jxx проверяют условие xx и, если оно истинно, совершают прыжок по указанному адресу. Например, JE прыгает, если числа равны (Jump if Equal), а JNE если неравны (Jump if Not Equal). JB/JA работают с беззнаковыми числами, а с JL/JG - со знаковыми. Любы два не противоречащих друг другу условия могут быть скомбинированы друг с другом, например: JBE - переход, если одно беззнаковое число меньше другого или равно ему.
Безусловный переход осуществляется командой JMP.

Задания

Задание 1. Выполнить программу и с помощью трассировки записать назначение каждой команды и содержимое регистров ax, bx на каждом шаге.
000 Mov ax, 0
003 Mov bx,10
006 Add ax, bx
008 Cmp ax, 50
00a je 6
00c jb 6
00e ja 10
010 nop
012 jmp 6

Задание 2. Даны три числа x, y, z. Написать программу, которая бы выполняла условия: если x
Задание 3. Написать программу, которая бы умножала число 2 на само себя до степени 5.

Задание 4. Написать программу для вычисления суммы чисел от 0 до 25.

Задание 5. Даны три числа x, y, z. Написать программу, выполняющую следующие условия: если xy или x>z, то выход.

Содержание отчета

Запишите в тетрадь ход выполнения лабораторной работы.
Ответьте письменно на контрольные вопросы.

Контрольные вопросы

Каково назначение команд перехода?
Какие виды команд перехода существуют? Запишите назначение.
Какие команды используются для условного перехода?
Какая команда отвечает за безусловный переход?

15

Приложенные файлы

  • doc prac 3-4
    Размер файла: 36 kB Загрузок: 1