Простые программы

Пример 1. Сложение 8-битных чисел.

По-видимому, самой простой программой, которую можно себе представить, является программа сложения двух чисел. Предположим, что нужно сложить содержимое ячеек 4016 и 411в и поместить результат в ячейку 421в. В этом примере для простоты не будем учитывать возможность возникновения переноса.

На большинстве ЭВМ такое сложение будет выполняться за несколько шагов.

Шаг 1. Послать в аккумулятор содержимое ячейки 4016.

Шаг 2. Прибавить к содержимому аккумулятора содержимое ячейки 411в.

Шаг 3. Послать содержимое аккумулятора в ячейку 4216.

Motorola 6800 (пример 1)

В МП Motorola 6800 программа сложения будет в точности повторять эти шаги.

М6800 Пример 1

Сложение двух чисел

LDAA $40 Загрузить операнд 1 ADDA $41 Прибавить операнд 2 STAA $42 Запомнить результат SWI

Рассмотрим выполнение программы по шагам.

1. LDAA $ 40

 

 

Шестнадцатиричный адрес ячейки памяти

Мнемонический код операции

Шестнадцатиричный код содержимого памяти

00

LDAD $40

96

01

40

02

ADAA $ 41

03

 

41

04

STAA $ 42

97

05

 

42

00

SWI

ЗР


Данная команда посылает в аккумулятор А содержимое ячейки 40. Поскольку ячейка 40 находится на нулевой странице (ее адрес меньше 100, ), можно использовать формат этой команды с прямой адресацией (96ie)> при котором она занимает два слова программной памяти и выполняется за три такта (за 3 мкс в МП Motorola 6800 со стандартной частотой тактового генератора 1 мГц).

2. ADDA $ 41

Данная команда прибавляет к содержимому аккумулятора А содержимое ячейки 41. Команда имеет формат с прямой адресацией (9В16), занимает две ячейки программной памяти и выполняется за 3 мкс.

3. STAA $42

По этой команде содержимое аккумулятора А посылается в ячейку 42. Эта команда прямого формата (971б) занимает два слова программной памяти и выполняется за 3 мкс.

4. SWI

Этой командой завершаются примеры всех программ для МП Motorola 6600.

Используя таблицу кодов команд, 'ложно выполнить ассемблирование этой программы вручную (рис. 5Л). На рис. 5.2 приведена трасса выполнения данной программы при условии, что первоначально в ячейке 40 хранилось число 5, в ячейке 41 — число 3, а содержимое счетчика команд было равно 0. Следует обратить особое внимание на то, как выполнение каждой команды меняет содержимое счетчика команд и признаки. Каждая из первых трех команд.занимает две,ячейки памяти программ: в одцои ячейке хранится, код операции, в другой 8-битный, здр.ер, ячейки ; на рулевой странице