Intel 8080 (пример 1)

Программа для МП Irrtel-8080 выглядог сложнее, поскольку в МП Irtfel 8080.невозможно выполнять сложениес использрванием прямой адресации. В результате требуется вспомогательная команда для пересылки одного операнда в РОН. Последующая команда сложения может неспосредственно адресовать регистр. * следующем примере будет показано, как обойти это неудобство при использовании косвенной регистровой адресации. В данном случае программа состоит из следующих шагов:

Intel 8080 пример 1 Сложение двух чисел 

LDA 40Н ; Загрузить операнд 1

MOV В, А

LDA 41Н ; Загрузить операнд 2

ADD В ; Сложить Операнды

STA 42Н ; Сохранить результат

HLT

Программа для МП Intel 8080 имеет длину пять команд, в то время как программа для МП Motorola 6800 — только три. Действительно, программа для МП Intel 8080 оказывается эффективней при обработке больших совокупностей данных, чем при обработке отдельных чисел. Причиной этого является то, что регистровая прямая и косвенная адресации эффективны только тогда, когда содержимое регистра используется многократно. 

 

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

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

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

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

Мнемониче-

т««о*

Операции

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

памяти

00

LDA4ОН

ЗА

06

 

00

01

 

40

07

ADD В

80

02

MOV В, А

00

08

STA42H

32

03

 

47

09

 

42

• 04

 

ЗА

 

00

 

 

 

OB

HLT

76

05

LDA 41Н

41

 

 

 

Рис. 5.3. Результат ассемблирования программы сложения для МП Intel 8080

 

 Рассмотрим выполнение программы для МП Intel 8080 по шагам, не обращая внимание на команды, встречающиеся ранее.

1. LDA 40Н

По этой команде содержимое ячейки памяти с адресом 40 посылается в аккумулятор. Поскольку в Intel 8080 отсутствует специальная адресация нулевой страницы, в команде должен быть задан полный 16-битный адрес. Команда LDA занимает три ячейки памяти и выполняется за 13 тактов (или за 6,5 мкс на МП Intel 8080 со стандартной тактовой частотой 2 мГц).

2. MOV В,А

По этой команде в регистр В посылается содержимое аккумулятора. Команда занимает одну ячейку памяти и выполняется за 2 мкс.

3. ADD В

По этой команде к содержимому аккумулятора прибавляется содержимое регистра В. Команда занимает одну ячейку памяти и выполняется за 2 мкс.

4l STA 42Н

По этой команде содержимое аккумулятора посылается в ячейку 42. Команда занимает три ячейки памяти и выполняется за 6,5 мкс. 5. HLT

Эта команда является последней во всех примерах программ для МП Intel 8080.

Эту программу можно ассемблировать вручную (рис. 5.3), используя таблицу кодов операций МП Intel 8080. Трасса выполнения программы показана на рис. 5.4. Программа выполняется при тех же начальных условиях, что и ранее: (40) = 5, (41) = 3, (PC) = 0. Заметим, что в МП Intel 8080 на значение признаков влияет только выполнение команды ADD (сложить). Следует обратить также внимание на то, что содержимое счетчика команд меняется с непостоянным шагом, так как команды имеют различную длину.

Команды LDA u .STA требуют задания, 16-битного адреса. В МП Intel 8080 младшие 8 бит. 16-битного адреса помещаются в первой ячейке (младший адрес), а старшие 8 бит — во второй ячейке (старший адpec); этот метод задания адреса отличается от принятого в МП Motorola 6800 и почти во всех других ЭВМ.

Пример 2. Выделение шестнадцатиричной цифры.

При использовании любой ЭВМ возникает проблема обработки данных, длина которых не совпадает с размером ячейки памяти. В ЭВМ за один прием всегда обрабатывается ячейка или байт. Но как выйти из положения, если информация занимает не всю ячейку? С помощью 1

2 или 4 бит можно кодировать состояние, задаваемое тумблером, индикатором, клавишей на пульте или двигателем. Вместе с тем, что делать, если данные не умещаются в одной ячейке. Для задания многозначного десятичного числа, управляющего сообщения или информации о совокупности переключателей или индикаторов может потребоваться много бит. Рассмотрим сначала подобную ситуацию на простом примере и перейдем к более сложному в следующем параграфе.

Чтобы обрабатывать короткие информационные поля, программа должна удалить неиспользуемые биты ячейки памяти, чтобы они не влияли на результат выполнения операций. Такое удаление может быть выполнено с помощью логической операции И. Предположим, например, что нас интересуют только младшие 4 бита (младшая шестнадцатиричная цифра) ячейки памяти. Приведенная ниже программа будет выбирать содержимое ячейки 401б, выделять младшие 4 бита и посылать их по адресу 41^. Выделение будет выполняться в следующем порядке.
 

Единственной новой командой в данной программе является команда ANDA #%00001111. Она выполняет логическую операцию И над двоичным числом 00001111 и содержимым аккумулятора А. Следует обратить внимание на символ который указывает, -что задан непосредственный операнд, и на символ %, который рзначает, что этот операнд —г двоичное число. Данная команда с непосредственным операндом (841б) занимает две ячейки памяти и выполняется за,2,мкс.



Ассемблированный вариант данной программы показан на рис. 5.5, а трасса ее выполнения — на рис. 5.6. Предполагается, что в ячейке 401б находится шестнадцатиричное число 87. Эта программа аналогична программе сложения из примера 1.
 



http://edem-caffe.ru/ интернет магазин кофе чай.