Й.Янсен Курс цифровой электроники. Том 4. Микрокомпьютеры (1987) (1092084), страница 22
Текст из файла (страница 22)
е. соответствующий переход будет выполнен только тогда, когда определенный флажковый бит станет равным 1. Таким образом, осуществляется переход как бы на основе результата ранее выполненной операции. Прежде чем перейти к самим командам, следует, по-видимому, проанализировать те обозначения, которые будут применяться для адекватного представления функций без дополнительных подробных описаний. В рамках комбинационной логики уже был рассмотрен ряд символов для обозначения функций И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ. Так как эти функции входят и в состав набора команд МП, правда, вместе с функциями сложения и вычитания, то для ббльшей однозначности при составлении программ следует перейти к другой системе обозначений для команд И, ИЛИ и ИСКЛЮЧАЮ(ДЕЕ ИЛИ. Из таблицы, приведенной на рис, З.З, следует, что для функций И, ИЛИ и ИСКЛЮЧАЮ- 106 Глава 8 Символ Зиечеиие Старший байт двойного регистра Младший байт двойного регистра Счетчик команд — 16-разрядный регистр в МП РСн — старший байт РСь — младший байт Указатель стека — 16-разрядиый регистр в МП БРн — старший байт ЗРь — младший байт бит ш регистра г (ш=0...7) гвлажковые биты (признаки условий) Š— нуль, С"г' — перенос, Б — знак, АС вЂ” вспомогательный перенос, Р— четиость Содержимое регистра или ячейки ЗУ (А) — содержимое регистра А (п) — содержимое ячейки ЗУ Содержимое ячейки ЗУ, адрес которой находится в двойном регистре Н1.
Содержимое ячейки ЗУ, адрес которой находится в ячейках ЗУп и п+1 Заменить: А А+В ( заменить содержимое регистра А на содер. А+В ) жнмое регистра А+регистра В Логическое И ИСКЛЮЧАЮЩЕЕ ИЛИ ЛОГИЧЕСКОЕ ИЛИ Сложение (сумма) Вычитание (разность) Умножение Замена на Дополнение до 1, или инверсия, например, (А) гь г! РС гм г, З, Р, СУ АС ((Нь)) ((п)) или Рис.
З.З. Зяачения символов, используемых в втой главе. ЩЕЕ ИЛИ можно использовать обозначения, /~, 'ч/ и з(~, т. е. символику, которая считается общепринятой. В зависимости от типа команды та ее часть, которая связана с операндом, может содержать как адрес, так и данные. Это справедливо и в отношении содержимого регистра. Данные, на- Набор команд микроЭВМ $09 ходящиеся в регистрах или в ячейках ЗУ, обозначаются с помощью скобок. Например, символ А в скобках, т. е.
(А), обозначает содержимое регистра А, а символ М в скобках, т. е. (М), — содержимое М-й ячейки ЗУ. В регистре или в ячейке ЗУ может указываться адрес, по которому можно найти соответствующие данные. В этом случае название регистра нли ячейки ЗУ заключается в двойные скобки, например ((НЕ)).
Таким образом, двойные скобки означают, что указывается содержимое содержимого. При этом имеется в виду, что речь идет о косвенной адресации. Форма косвенной адресации знакома нам и из повседневной жизни. Например, чтобы позвонить какому-либо лицу, номер телефона которого нам неизвестен, мы сначала обращаемся к телефонному справочнику (регистру) и, используя адрес, находим соответствующего абонента (номер телефона). Такая косвенная адресация применяется в том случае, когда во время выполнения операций может измениться адрес. В данном примере, если абонент будет систематически переезжать с одного места на другое, номер его телефонного аппарата будет изменяться. Регистры обозначаются буквой г, причем в случае двухбайтового регистра следует различать позиции старшего и младшего байтов.
Эти байты указываются с помощью букв гЬ (старший байт) и г) (младший байт). В дальнейшем также понадобится указывать более подробно позицию какого-либо бита в регистре. Для этой цели применяется цифровой индекс, который располагается после обозначения регистра, например Нм что соответствует пятому биту, начиная с младшего бита Н-регистра. Мы говорим «пятый», потому что нумерация начинается с Но. Команды, операнды и данные представляются в микроЭВМ в двоичном коде с помощью нулей и единиц. С таким кодом работать очень неудобно из-за слишком длинной записи и связанной с ним большой вероятности совершить ошибку.
По этой причине были разработаны специальные способы представления информации, которые обладают определенным сходством с представлением в десятичной системе счисления и обеспечивают максимальную надежность. Мы имеем в виду восьмеричную и шестнадцатеричную системы счисления. Числа обеих систем счисления являются степенями двойки (2") и поэтому удобны в применениях, При использовании восьмеричной системы счисления каждое слово, начиная с младших битов слова, разбивается на группы по три бита в каждой, которые соответствуют определенной восьмеричной цифре.
Для слов данных и адреса длиной в один байт получаются две группы по три бита и одна груп- по Глава а па в два бита. Для представления байта в шестнадцатеричной системе четыре бита объединяются в одну группу, которая соответствует одной шестнадцатеричной цифре.
Один байт представляется двумя шестнадцатеричными цифрами. На рис. 3.4 приведены двоичные эквиваленты десятичных, восьмеричных и шестнадцатеричных цифр. Рис. 3.4. Десятичные, восьмеричные и шестнадцатеричные цифры и аивива. лентные им двоичные величины. Как показано на рис.
3.5, от восьмеричной и шестнадцатеричной форм представления цифровых величин можно легко перейти к двоичной форме любого байта. Очевидно, что при составлении программы можно выбрать одну из двух указанных форм представления адреса. В случае восьмеричной адресации после цифры 7 происходит перенос, т. е. после адреса 7 следует адрес 10, а после адреса 77 — адрес 100 и т. д. При использовании шестнадцатеричного представления адреса после г' следует 10, а после Вг следует 100. Мы рекомендуем потренироваться в записи таких адресов для нескольких текстов программ, так как в противном случае будут часто появляться ошибки, связанные с переносом после 9 и аналогичных чисел в десятичной системе.
На рис. 3.6 приведены списки адресов, из которых видно, как осуществляется адресация в том случае, когда требуется указать несколько тысяч адресов в восьмеричном и шестнадцатеричном кодах. 100в в восьмеричной системе счисления равно десятичному числу 64,ш а 1000в равно 8Х8Х8=512~в. Как следует из таблицы, десятичным 512 байт соответствуют весьмеричные!000 байт. 1024 слова (1К) соответствуют восьмеричным 2000в слов. Байи(деоичныц) 1 1 1 О 1 1 / ! лреМйРаш1елие ! ! дбащ 1 1 сбил ) 4 бит Са) Восьмеричное д Шестлоднамеричлое прадапаеленпе Рве.
3.5. а — бает )8 бвт), представленвыа тремя вссьмерячяымп цнфрамн а двумв юестпадцатернчнымв цвфрамв; б — примеР перевода олного банта в восьмервчаын набор яф; е — пример йеревода одного байта в еестнадцатервчаыа набор цифр. на ор цн р! 2 бит Шесл1ладцшлеричлсе Е дредсеалление 1 1 1 У 1 1 1 1 1 1 Збшл 1 1 1 1 Глава 8 о о х о е о о ь" о, ь о "«« иъ х С) со 3 й ( ь о Ф Н ь Ю х Щ х о х 4 ь о О х х! «~ Ю $ «о о х О3 а о о о и о ««х «а а и хю х Ю ° \ д аь Й ж й" Ва Глава 3 Рис.
3.7. Распределение полей бланка программы прн использовании вось- а. меричного код ЗУ на 4К соответствует 10000з слов в восьмеричной системе счисления. Величины, указанные на рис. 3.6, относятся к восьмеричной и шестнадцатеричной формам представления адресов ЗУ для микроЭВМ с МП 8085А. В нижней части таблиц показаны адресные переключатели с множителями, на которые следует умножать показания переключателей для того, чтобы получать десятичные значения адреса.
На рис. 3.7 представлена страница программы, разделенная на колонки для размещения требуемых данных. Адрес указывает ячейку ЗУ, в которой будет находиться данная команда. В зависимости от конкретного типа каждая команда имеет длину 1, 2 или 3 байт. Колонка с меткой используется для символического обозначения адреса. Необходимость в использовании метки иллюстрирует следующий пример.
Допустим, что метка задает начальный адрес подпрограммы 31ОЫАЬ Р01ИТ, которая выполняется в циклическом режиме и определяет длительность точечных сигналов в коде Морзе. Можно обозначить этот начальный адрес в колонке меток с помощью метки 316ХАЬ Р01ХТ. При дальнейшей разработке программы такое обозначение обеспечит ряд удобств. Так, например, можно написать в тексте программы команду Набор коммод микроЭВМ перехода или ветвления, которая вернет программу в началь- ный адрес, в очень простой форме, помещая метку в адресную часть этой команды, т.
е. )МР— 310ИА1. Р01ХТ. Позднее, после того как программа приобретет законченную форму, меткам присваиваются абсолютные значения адресов. Для 516ХА1 Р01ХТ это означает, что во всех случаях, когда мет- ка появляется в программе в качестве адреса, символический адрес можно заменить адресом ячейки ЗУ, значение которого присвоено метке. Особенно удобными становятся действия с использованием меток в программе, написанной на языке ассемблера. Для под- готовки программы к ассемблированию достаточно только пе- речислить следующие друг за другом команды, используя со- ответствующие семантические сокращения (мнемонику). ЭВМ переводит эту мнемонику в необходимый двоичный код, а так- же обеспечивает формирование соответствующих адресов с уче- том длины конкретных команд — 1, 2 и 3 байт.
Очевидно, что, программируя с привлечением мнемоники, можно обойтись без указания конкретных значений адресов в командах переходов и ветвлений, а вместо этого использовать только метки. При этом необходимо не забывать о том, что абсолютные адреса становятся известны лишь после ассемблирования в ЭВМ. В начале ассемблирования указывается толь- ко та ячейка ЗУ, в которую помещается код первой команды. После этого адресация следующих команд происходит уже ав- томатически.
Прн использовании меток ассемблер автоматически следит за тем, какая ячейка ЗУ соответствует данной метке адреса и помещает номер этой ячейки в те ячейки ЗУ, где по ходу вы- полнения программы появляется эта метка. Метки можно при- сваивать также адресам с обрабатываемыми данными и рабо- чим участкам ЗУ, что позволяет довольно просто вводить их в исходную программу. Метки облегчают перемещение программы в другой участок ЗУ.
При этом после перехода к ассемблированию достаточно задать новый начальный адрес и затем считать с перфоленты программу заново. Перфолента содержит копию текста про- граммы, введенного ранее вручную с помощью клавиатуры. Ин- формацию, находящуюся на перфоленте, телетайп печатает иа бланке, После колонки с метками следует колонка для указа- ния мнемоники, которая заполняется обозначениями для соот- ветствующих команд в виде символических имен. Последую- щие три колонки зарезервироваиы для восьмеричной записи байта команды, и, наконец, последняя колонка предназначена для более подробного описания сущности выполняемой опера- ции (комментарии), т18 Глана д 3.4. Флажковые биты геламкоеые биты су АРР-команды 500.команды 1МСЯ-команды РЕСЯ-команды ВАР АЯО-команды ОЯ-команды ХОЯ-команды СМР-команды Кимилбг г Никли никога ловиза СМСггз 1С 1'ОР азии 1 1 1 1 О 1 1 1 О О Изменение флажкоеоео Оилга указана с ломоа1ьг" 1 х-нульз 5-знак; Р-нетногть; су-ОереносгАс-ееиомоеалгаиьный лереноа Рве.