Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1553
Скачиваний: 1
Символьный формат данных в основном предназначен для текстовых сообщений. Специальных команд обработки символьных данных нет, они могут преобразоваться как числовые или логические переменные. Так как для ввода текстов или их отображения используются компьютерные сред ства, кодирование в символьном формате обычно производят стандартны ми компьютерными кодами. Таким стандартным символьным кодом одно байтового формата является, например, код ASCII. ASCII предназначен для кодирования всех символов, используемых на клавиатуре персонального компьютера. Например, символьной переменной 'А1 соответствует одно байтовый ASCII-код 0x41, символьной переменной 'к' - ASCII-код 0x6b, символьной переменной '2* - ASCII-код 0x32 и т.п. Полную таблицу кода ASCII можно найти в любой литературе, описывающей форматы компью терного кодирования данных.
Данные других форматов, кроме рассмотренных в данном разделе, также можно обрабатывать в микропроцессорной системе. При выборе алгорит мов преобразования необходимо учитывать, что система команд микро процессора содержит операции над числовыми и логическими переменны ми. Следовательно, операции преобразования данных других форматов не обходимо приводить к эквивалентным операциям, реализуемым в системе команд.
В целом, система команд и форматы данных микропроцессора являются универсальными средствами преобразования. Очевидно, что эффектив ность работы микропроцессорной системы в силу ограниченного набора команд различна для различных форматов данных. Поэтому применяемые форматы данных - весьма важный компонент реализуемых алгоритмов преобразования. Следующий важный элемент в организации работы мик ропроцессорной системы - процедуры адресации данных, именно адреса ция обеспечивает доступ к данным для алгоритмов преобразования.
1.3. Организация памяти и адресация данных
Запоминающие устройства (память) микропроцессорной системы по вы полняемым функциям и свойствам можно разделить на две области: опера тивное запоминающее устройство (RAM) и постоянное запоминающее уст ройство (ROM). В рассматриваемой структуре (рис. 2) эти области образу ют единое адресное пространство, и для них используется общая система адресации с 16 битами ША. В других вариантах микропроцессорных сис тем разные области памяти могут иметь самостоятельные системы адреса ции.
Для единого адресного пространства нет какого-либо начального разде ления функционального назначения областей памяти. Так называемая клас сическая архитектура компьютера предполагает возможность хранения и кодов программ, и данных для преобразования по любым адресам запоми нающих устройств. Запоминающие устройства в этом случае могут рас-
23
сматриваться как набор типовых ячеек памяти, каждая из которых позволя ет хранить один байт данных и имеет уникальный 16-битовый адрес, пере даваемый в микропроцессорной системе по ША. Уникальный адрес позво ляет выбрать для обмена данными одну ячейку памяти из всего множества ячеек запоминающих устройств и обеспечить доступ только к выбранному байту данных. Максимальный объем адресного пространства 216 ячеек па мяти (64 кбайт).
Оперативное запоминающее устройство (RAM) позволяет записывать однобайтовые данные для хранения и считывать записанные ранее данные. Направление передачи данных (микропроцессор —* RAM или RAM —> микропроцессор) определяется микропроцессором с помощью сигналов ШУ. Вместе с сигналами управления микропроцессор должен передать ад рес выбранной ячейки памяти по ША. Ячейки RAM должны обеспечивать запись данных, хранение данных и считывание хранящихся данных.
При работе микропроцессорной системы RAM позволяет выполнять все необходимые функции по хранению информации и, следовательно, являет ся обязательным элементом. Однако RAM производит хранение данных только при включенном питающем напряжении. При выключении питания все записанные данные будут потеряны и не могут быть восстановлены по вторным включением питания, т.е. RAM - память энергозависимая.
Как было показано ранее, в микропроцессорной системе все операции, в том числе и загрузка данных в память, выполняются программно. При от сутствии программы в памяти реализация каких-либо функций невозмож на. Эта особенность работы микропроцессорной системы требует постоян ного наличия программы в памяти, даже при отключении питания. RAM, как известно, такую возможность не обеспечивает, поэтому микропроцес сорная система обязательно содержит и постоянное запоминающее устрой ство - ROM.
ROM - память энергонезависимая, т.е. сохраняет записанные данные и при отключении питания. Другой ее особенностью является возможность только считывать данные при работе микропроцессорной системы. Стан дартные процедуры и сигналы управления не позволяют выполнять запись новых данных в ROM. Запись данных ROM выполняется специальными средствами и обычно называется программированием. Существуют ROM с однократным программированием данных, позволяющие выполнять запись только один раз, и репрограммируемые ROM, с возможностью многократ ной перезаписи данных (обычно с ограниченным количеством циклов пе резаписи).
Таким образом, данные в ROM должны быть записаны до начала работы микропроцессорной системы, а при включении - обеспечивать выполнение необходимых алгоритмов работы в соответствии с записанными кодами программы. ROM называют также памятью программ и констант, так как и
24
коды программы, и константы - данные, которые не изменяются в процессе выполнения программы микропроцессорной системы.
Соотношение между объемами RAM и ROM в адресном пространстве памяти зависит от назначения микропроцессорной системы. В универсаль ных средствах таких, как персональный компьютер, объем ROM относи тельно небольшой. Из программ, необходимых для работы, в ROM персо нального компьютера постоянно хранится только BIOS - комплекс про грамм, обеспечивающих загрузку в RAM других программ с внешних но сителей информации (например, с hard-диска). Набор задач жестко не огра ничен и для решаемых задач выбираются и загружаются в RAM с помощью BIOS требуемые компоненты программного обеспечения.
Для специализированных микропроцессорных систем, к которым отно сятся и средства автоматизации, обычно и круг задач, и программы, тре буемые для их решения, неизменны и могут постоянно храниться в памяти. Поэтому в таких средствах удельный вес ROM в адресном пространстве практически всегда существенно превышает удельный вес RAM. В даль нейшем будем рассматривать вопросы организации работы микропроцес сорной системы, полагая, что все программы хранятся в ROM и имеется RAM относительно небольшого объема только для хранения данных.
Задание определенных физических адресов для областей RAM и ROM в общем случае может быть произвольным. Однако необходимо учитывать следующую особенность работы микропроцессора: процедура начального сброса (reset), с которой обязательно должна начинаться работа, как прави ло, задает в программном счетчике нулевой начальный адрес программы. По начальному адресу памяти должно размещаться начало рабочей про граммы микропроцессора, которая обеспечивает корректный старт работы микропроцессорной системы. Область памяти с этими начальными адреса ми, следовательно, должна принадлежать области ROM. Чтобы адресные пространства сделать непрерывными, обычно адреса ROM задают, начиная с наименьших адресов, а адреса RAM - в оставшемся диапазоне наиболь ших физических адресов.
Ранее было показано, что адресация кодов программы производится программным счетчиком микропроцессора. Адресация всех остальных данных должна производиться командами программы. Организация работы микропроцессорной системы предполагает использование нескольких спо собов адресации данных. Если память микропроцессорной системы образу ет единое адресное пространство, способы адресации не зависят от того, с какой областью памяти мы работаем.
Применяемые в микропроцессорной системе алгоритмы адресации дан ных можно привести к одному из четырех видов: непосредственная адреса ция, прямая адресация, регистровая адресация, стековая адресация. Осо бенности адресации связаны с разным форматом данных и адресов: данные - один байт, адреса - два байта.
25
Самый простой вид - непосредственная адресация. В этом случае байт данных помещается непосредственно в коде команды. Примеры: команда mvi By D8 производит загрузку в регистр В байта данных D8 (38=08), со держащегося в коде команды; команда sui D8 производит вычитание из байта аккумулятора байта данных D8 (A8=A8-D8). Команды с непосред ственной адресацией часто называют операциями с константами. Так как данные при непосредственной адресации являются элементами кодов про граммы, эти данные не могут быть изменены. Неизменность данных явля ется свойством и основным ограничением этого вида адресации, который в действительности применяется только для операций с константами.
Для прямой адресации физический адрес ячейки памяти (ША) указыва ется в коде команды: например, команда sta A16 производит запись байта данных из аккумулятора в ячейку памяти с двухбайтовым адресом А16 (А8-М(А16)). При такой адресации передаваемые байты данных являются обычными переменными и могут принимать любые допустимые значения. Существенное ограничение - обмен данными по командам с прямой адре сации всегда происходит с одной и той же ячейкой памяти, адрес которой указан в команде. Из-за этого ограничения и громоздкого формата команд, содержащих в своем коде двухбайтовый адрес, прямая адресация также имеет ограниченное применение. В алгоритмах обработки данных доста точно часто требуется адрес сделать переменным, чтобы можно было им программно управлять.
Более универсальна регистровая адресация, называемая также косвенной адресацией. При регистровой адресации в качестве кода адреса использует ся содержимое регистровой пары (два байта). Примеры: команда Шах DE производит загрузку в аккумулятор байта данных из ячейки памяти с адресом, указанным в регистровой паре DE (A8=M(DE)); команда ana M вы полняет конъюнкцию байтов аккумулятора и ячейки памяти с адресом, указанным в регистровой паре HL (A8=(A8)&M(HL)). В большинстве ко манд с регистровой адресацией микропроцессора Intel 8080 код адреса хра нится в регистровой паре HL (H - старший байт адреса, L - младший байт адреса). Регистровая адресация, во-первых, упрощает формат команд - в явном виде код команды не содержит двухбайтового адреса; и, во-вторых, адрес можно изменять, выполняя с байтами адреса любые операции из на бора команд микропроцессора. Возможность преобразования адреса при работе программы является важнейшим свойством этого вида адресации и широко используется в различных алгоритмах.
Очевидно, что регистровая адресация требует предварительной подго товки (загрузки или преобразования) кода адреса в регистровой паре. Для преобразования адресов в регистровых парах система команд содержит специальные операции с двухбайтовыми данными.
26
Например, команда Ixi HL, DLDH производит загрузку двух байт (DJ3 и DH8) в регистры L и Н (L8 = DL8, H8 = Он8), используя непосредственную адресацию, а команда inx HL выполняет инкремент содержимого реги стровой пары HL, как двухбайтовой переменной (HL=HL+1).
Четвертый вид - стековая адресация, в первую очередь, предназначена для работы с подпрограммами. Более подробно процедуры с подпрограм мами будут рассмотрены в следующем разделе. Следует помнить, что стек в микропроцессорной системе - не отдельное запоминающее устройство, а способ адресации RAM с особым алгоритмом формирования адреса. Адрес RAM для операций со стеком всегда определяется специальным адресным регистром - указателем стека (SP) микропроцессора (рис. 2).
В командах, использующих стековую адресацию, адрес в явном виде ни когда не указывается и определяется следующим алгоритмом доступа к данным: "последний вошел - первый вышел". Обычно этот алгоритм реа лизуется преобразованием содержимого указателя стека: при записи дан ных указатель стека (SP) автоматически декрементируется, а при чтении данных указатель стека (SP) автоматически инкрементируется. Такое пре образование адреса в указателе стека обеспечивает в командах чтения сле дующий порядок доступа: первым считывается байт данных, записанный последним, вторым - записанный предпоследним, и т.д. Следовательно, порядок записи данных в стек однозначно определяет порядок поступления данных при чтении, а стековая адресация не позволяет производить незави симый доступ к любым данным, как другие виды адресации.
Стековая адресация применяется из-за упрощенного формата команд и процедур обмена данными в алгоритмах, требующих однократной записи в память и затем однократного считывания данных из памяти в строго задан ной последовательности. Команды со стековой адресацией микропроцессо ра Intel 8080 производят обмен двухбайтовыми данными.
Рассмотрим пример применения стека для хранения данных:
ml: push |
ВС |
; B8-+RAM(SP-1), C8-+RAM(SP~2), |
SP=SP-2 |
m2: push |
DE |
; D8-*RAM(SP~3), E8-+RAM(SP-4), |
SP^SP-4 |
;команды программы, изменяющие данные в
;регистрах В, С, D, Е
; однако данные в этих регистрах должны быть восста- |
|||
; новлены для дальнейшего использования в программе. |
|||
тЗ: pop |
DE |
; RAM(SP-4)-+E8, RAM(SP-3)->D8, |
SP=SP-2 |
m4: pop |
ВС |
; RAM(SP-2)-+C8, RAM(SP-1)-+B8, |
SP^SP |
Комментарии в каждой строке примера поясняют характер выполняемых операций.
27