Intel 8080 (пример 3)

Программа разделения слова на части для МП Intel 8080 несколько длиннее соответствующей программы для МП Motorola 6800, поскольку в МП Intel 8080 отсутствует команда ЛОГИЧЕСКИЙ СДВИГ ВПРАВО Однако в МП 8080 можно выполнять требуемое действие (логический сдвиг вправо на 4 бита) с помощью четырехкратного выполнения ко манды ЦИКЛИЧЕСКИЙ СДВИГ ВПРАВО и команды ЛОГИЧЕСКОЕ И, которая маскирует старшую (шестнадцатиричную) цифру..Программа обеспечивает сохранение выбранных из памяти данных в РОН\В, Это позволяет выполнить повторную нагрузку исходного числа в аккумулятор из регистра, а не из памяти. Программа имеет вид: Intel 8080 пример 3



Разделение слова на две части
 

Единственной новой командой в этой программе является команда RRC, которая циклически сдвигает содержимое аккумулятора на

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

2 мкс. Следует обратить внимание на то, что команда MOV А, В посылает содержимое регистра В в аккумулятор, а команда MOV В,А выполняет пересылку в обратном направлении. Команда межрегистровой пересылки занимает одну ячейку памяти и выполняется за 2,5 мкс.

Результат ассемблирования программ показан на рис. 5.11, а результат выполнения первой операции сдвига иллюстрируется на рис. 5.12. Начальные условия трассы несколько отличаются от конечной ситуации, показанной на рис. 5.8, из-за выполнения команды MOV В,А, которая запоминает копию данных. Можно отметить, что в программе имеется довольно большое число команд длиной в одно слово. Отметим также, что в Intel 8080 операция сдвига изменяет только содержимое признака ПЕРЕНОС.

Рассмотренные примеры простых программ иллюстрируют следующие особенности программирования на языке ассемблера.

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

 

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

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

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

! 00

LXI Н, 40Н

21

01

-

40

02

 

00

03

MOV А, М

04

MOV В, А

47

05

ANI 00001111В

Е6

06

 

0F

07

INX Н

23

08

MOV М, А

77

09

MOV А, В

78

RRC

OF

OB

RRC

OF

ОС

RRC

OF

0D

RRC

OF

ANI 00001111В

E6

0F

 

OF

10

INX Н

23

11

MOV М, А

77

12

HLT

76

Рис, 5.11. Реэультаг ассемблирования программы разделения слова для МП In­tel 8080

2. Программист старается предусмотреть как можно меньше обращений процессора к памяти. Число обращений к памяти можно уменьшить, используя нулевую страницу или косвенную адресацию о помощью регистров (что дает возможность работать с короткими командами), а также запоминая данные в РОН.



3. Следует внимательно анализировать влияние команд на состояние признаков. Характер изменения признаков существен, но меняется в зависимости от команд и типов процессоров.

4. С помощью команды ЛОГИЧЕСКОЕ И можно обнулить некоторые разряды ячейки, что дает возможность работать сданными, имеющими длину, меньшую длины ячейки.

5. С помощью команд сдвига можно осуществлять перемещение данных из одних разрядов в другие в целях как обработки, так и экономии памяти.
 

 



Смотрите подробности датчик открытия капота купить у нас на сайте.