Юный техник - для умелых рук 1989-02, страница 5

Юный техник - для умелых рук 1989-02, страница 5

Кид А5

В7=1

В6=0

П5=1

П4=0

D3=0

Ш=1

|

|

|

1

|

i

т

П1=0 1)0=1

П1=0 1)0=1

Рисунок 3.

Запись и чтение информации при работе с кассетным магнитофоном производится последовательным кодом, бит за битом.

В основу записи информации на магнитную ленту положен метод двухфазного код фования Формирование поел това-тельн ист! "вухфазных кодов производится программно. На рисунке 3 показано, как выглядит последовательный двухфазный код послс преобразования байта А5 (его двоичное представление 10100101). Запись байта при последовательном двухфазном кодировании начинается со старшего разряда.

В середине передаваемого бита происходит изменение его значения на противоположное, причем изменение с «1» на«0» означает, что передан бит, равный 0, а обратное изменение с «0» на «1» —бит, равный единице.

На границе двух одинаковых по значению смежных 6hl в всегда происходит изменение значения двухфазного кода. На границе разных по значению смежных битов изменение двухфазного кода не происход! г. Период следования информации Т выбирается из соображений надежности считывания информации. Если Т=0,66 мс, то скорость записи считывания равна 1500 бит/сек, что позволяет записать на одну сторону стгчдартной кассеты типа МК-60-2 до 256 Кбайт информации. Таким образом интерфейс с кассетным магнитофоном представляет собой одноразрядный порт ввода-вывода.

программное обеспечение

Ограниченный объем ПЗУ и ОЗУ в микроЭВМ минимальной конфигурации пре I эявпяет особые требования к эффективности npoi аммне )бес :чения. которое фактически ограничено программок! М И1И'. ОР . нако, даже несмотря на небольшой объем, МОНИТОР «ЮТ-88» лас вам возмож, эсть писать и отлаживать программы в машинных кодах, модифицировать их за счет вставки или удаления отдельных koi 1анц, пересылать отлаженные программы в новые адреса и корректировать их При программ фовании в машинных кодах у гастмаксимально приблизил" ся к аппаратным средствам микроЭВМ, учесть особенности микропроцессора и каждой отдельной команды и в результате получить предельно короткие и быстродейст вующие программы Для программирования в машинных кодах тре буются только карандаш и бума: . Составленную программу ml."но сразу с „омощью МОНИТОРА загрузить в ОЗУ микро ЭВМ и попробовать в работе Используя при написании таких программ символическое обозначение комг, д в виде мнемоник языка Ассемблера с последующим ручным ассемблированием с помощью комлактных табличных представлений команд/мне-моник-команд/кодов, удается по существу освоить программирование на языке Ассемблер.

Прежде чем переити к рассмотрению директив МОНИТОРА, целесообразно познакомить [ с системой команд и устройством микропроцессора КР580ИК80А в справо чном листке «ЮТ-88»

Все команды микроЭВМ сведены в таблице (см. вкладку) Выделим наиболее общие закономерности их использования.

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

2. Аккумулятор и регистровая пара HL являются единственными регистрами, которые могут быть непосред5Явенно загружены в память.

3. Аккумулятор является единственным регистром, который может быть инвертирован, сдвинут, косвенно загружен в память с использованием регистровых пар ВС и DE илииспользован в командах ввода/вывода (If OUT).

4. Регистровая пара HL является едищтвенной, содержимое которой может быть пер дно в счетчик команд (команда PCHL) или указатель стека (команда SPHL).

5. Регистровая пара Н может использоваться как аккумулятор двойной длины при сложении 16 разрядных чисел (команда DAD).

6. Содержимое регистровых пар HL и DE можно менять местами (команда HCHG).

7. Отдельные команды могут применяться для специальных функций. Команды XRA А или SUB А обнуляют аккумулятор. Команды ANA А или ORA А очищают флаг переноса, а команда ADD А выполняет логический сдвиг аккумулятора влево.

8 Команды увеличения (умшьшения) на 1 регистров INR (DCR) дей-■«ввуютнавсе флаги, заисключением флага переноса. Команды увеличения (уменьшения) на 1 регистровых пар INX (DffiO не оказывают влияния на флаги.

9. В стек или^из Ш|ека мог^ьт быть переданы то.Ж(о регистровые пары. Одной из таких регистровых пар является слово состояния микропро

цессора, которое содержит аккумулятор (старший байт) и флаги (младший байт) Команды CALL и RET передаю^врес в стек и обратно.

10. При записи 16-^зрядных адресов младший байт записывается первым

Целесообразно также отдельно ассмотреть основные способы адресации данных в микроЭВМ. Предусмотрено 3 способа адресации: прямая, непосредственная и косвенная.

1. Прямая адресация (из памяти или в память с конкретным адресом) может использоваться для работы с аккумулятором и регистрами Н—L Адрес данных записывается во втором и третьем байтетсоманды. Натри-мер:

LDA C000H

Эта команд1п!агружает А из ячейки памяти сЧдресом C000H; STA 9000Н

Эта команда загружает ячейку памяти с адресом 9000Н содержимым аккумулятора. LHLD C000H

Эта команда загружает регистр ^fe ячейки с гЯресом C00CH, а регистр Н из ячейки с адресом С001Н, то^ть сначала Вш^Дший байт, а затем старший байт. SHLD 9001Н

Эта команда загружает в ячейку памяти 9001Н содержимое регистра L, а в ячейку памяти 9002Н регистра Н.

2. Непосредственная адресация, то есть конкретное значение, записывается в байте, следующем за командой.

Например, MVI А, 11Н.

Эта команда загружает в А лючение 11Н;

LXI Н, 9001Н

Эта команда загружает в регистры Н—L значение 9001Н соответственно

3. Косвенная адресация (по адресу в регистровой nape HL, DE или ВС). Например, MOV А, М или MOV М, А.

Команды заг рузки регистра из ячейки памяти с адресом в регистр(^^И паре HL или наоборот. LDAX D или LDAX В

Команды загрузки аккумулятора из памяти по адресам в регистровых парах DE или ВС. STAX D или STAX В

Команды загрузки памяти пИЛесу в регистровых парах DE или ВС содержимым аккумулятора.

Используя команды с разными способами адресации, приведем программу вывода единиц на все индикаторы:

1. 2-байтная MVI А, 11Н Зана^ние константы в акку-команла мулятор

2. 3-байтная STA 9300Н Вывод «11» на правый индикатор команда

3 3-баитная LXI Н, 9001Н Занесение адреса среднего

команда индикатора в Н

4. Однобайтная MOV М, А Вывод на средний индикатор «11» команда

5. 3-байтная LXI D, 9002Н Ванесение аццеса левого команда индикатора в DE

6. Однобайтная STAX D Вывод «11» на левом индикаторе команда

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

1. MVIA, 11Н ЗЕ

11

2. STA 9000Н 32

00 90

3. LXI Н, 9001Н 21

01 90

4. MOV М,А 77

5. LXID, 9002Н 11

02 90

6. STAX D 12

Если эти коды записать в ОЗУ микроЭВМ, то в резул_л 1те исполнения этой программы на всех индикаторах микроЭВМ высветятся единички.

монитор - управляющая программа микроэвм

Основой программного обеспечения микроЭВМ ак 'ibi его ядром, является управляющая программа МОНИТОР объемом 1 Кбайт. Несмотря на ст „ль малый объем, в ней имеются директивы записи, |.. ения ОЗУ, пуска программ с задаваемого адреса, тестирования ОЗУ и индикаторов, записи и чтения програ.лм с кассетного магнитофона с их верификацией. Имеется возможность пошаговой коррекции содержимого ОЗУ, осуществлять перемещение программ в новые адреса с коррекцией адресов программы, вычислять контрольную сумму, вставлять и удалять байты команд с коррекци ей "дресов остальной части программы. Минимизация объема МОНИТОРА достигнута прежде

5