Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
16.04.2013
Размер:
117.65 Кб
Скачать

Практическая часть.

Команды передачи управления условно разделены на 3 группы:

1. Команды безусловной передачи управления;

2. Bcc <label> - условный переход по метке;

3. DBcc Dn,<label> -условный переход с декрементом в регистре Dn;

4. Команды работы с подпрограммами.

Замечание.

В приведенных ниже экспериментах будут использованы не изученные ранее команды:

CMP Dn,Dm сравнение содержимого регистров

Dm(приемника) и Dn (источника).Производит

операцию вычитания (Dm)-(Dn) и по результату

выставляет флаги N , Z , V èC.

ADDA.L #I,An прибавляет к содержимому регистра Аn длинное

слово I, записанное в двух дополнительных

словах.

Команды безусловной передачи управления .

В набор команд МС68000 входят две инструкции безусловной передачи управления: BRA и JMP.

Команда JMP является наиболее универсальной, т.к. представляет собой по существу запись эфективного адреса в счетчик команд РС. К ней применимы все рассмотренные в предыдущей лабораторной работе методы адресации, за исключением прямой регистровой и непосредственной адресаций. Ниже мы расмотрим пример передачи управления с использованием абсолютной короткой адресации.

1000 JMP $900 переход к адресу $900 с использованием абсолютной

короткой адресации.

При ассемлировании этой команды адрес $900 записывается в следующее за командным слово. При выполнении этой команды процессор считывает это слово, переводит его в 32-х разрядную сетку и записывает в РС.

Следующий доступный для этой команды способ адресации - относительнпая адресация со смещением, при использовани этого способа команда JMP становится эквивалентом операции BRA с адресуемой памятью ограниченной 64К, т.к для задания смещенея относительно РС используется одно дополнительное слово.

1000 JMP $900(PC) Переход к адресу $900 с использованием

относительной адресации, в дополнительное слово

записывается -$102=$FEFE.

BRA.S $900 Переход к адресу $FB6, в младший байт командного

слова записывается -$50=$B0.

Введите эти две команды начиная с адреса $1000. Просмотрите получившийся код, особое внимание обратив на вычисленное системой TUTOR смещение.

Основным отличием этих команд в данном случае является границы переходов. Команда BRA имеет два варианта использования. В первом случае с префиксом .S для задания смещения используются 8 бит командного слова, таким образом передача управления может осуществлятся на растояния от -128 до 127 байт. Во втором - с префексом .L наряду с уже упомянутыми 8-ю битами, которые в данном случае являются старшим байтом, для описания смещения используется дополнительное слово, следующее за командным, следовательно границы пересылок увеличиваются до ±32Кбайт.

В системе TUTOR, также как и в кроссассемблере, при написании программ нет необходимости напрямую указывать с помощью префекса длину команды, ассемблер сам вычисляет длину смещения.

Команды условного перехода.

Система команд процессора МС68000 предоставляет программисту широчайший выбор команд условного перехода с помощью которых можно создавать большие разветвленные системы.

Рассмотрим специфику выполнения операций данной подгруппы на примере выполнения простейшей, но в то же время наиболее часто используемой команды Всс в различных программных структурах:

Следующий эксперемент илюстрирует применение команд условного перехода в структуре типа if.....then.....else :

1000 MOVEQ #-1,D0

MOVEQ #12,D1

CMP.L D0,D1 сравнение содержимого регистров данных

D0 è D1;

BHI $100E если число в D1 больше по модулю, чем в D0 ,

òî èäòè ê $100A,

MOVEQ #6,D0 иначе-записать в D0 число 30.

BRA $1010

100E MOVEQ #8,D0

Соседние файлы в папке Motorola - Описание лаб