Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов (1988) (1092085), страница 33
Текст из файла (страница 33)
4.8 Формат комвид показанные в табл.4.3. Здесь г(!вр 8, г(!зр 16 — приводимые в командах значения однобайтового и двухбайтового смещения. При б!зр 8 используемое при формировании исполнительного адреса смещение получается путем добавления к нему старшего байта, во всех разрядах которого устанавливается значение, совпадающее со знаковым (старшим) разрядом б!вр 8. Если в формируемом исполнительном адресе используется содержимое регистра ВР, то адрес принадлежит (если это ие оговаривается особо) сегменту стека, в остальных случаях адрес принадлежит сегменту данных.
При значении шод = 1 ! поля г'ш и ген определяют адрес регистра общего назначения (РОН) в соответствии с табл.4.4. Таблица 4.3 ггт о о о ! ! о Таблица 4.4 Пеле гггп пли геа Пеле г4гп плн геа е' О е 1 «-о 000 00! 010 011 ЛС Сь Ой В1 АХ СХ ОХ ВХ АН СН ОН ВН 5Р ВР 51 О! 100 101 110 ! 11 185 ООО 001 010 011 100 101 110 1 ВХ4 5! ВХ „О! ВР г51 ВР !. О! 51 О1 бьо 16 ВХ ВХ т- 51+ йзр 8 ВХ -1 О1 р йзр 8 ВР ! 51-1-41вр 8 ВР -т О1 1 йвр 8 51-1- йзр 8 О1+ бгвр 8 ВР-г йзр 8 ВХтйзр 8 ВХ+-Я -1 йзр 16 ВХ-1-О1 1-йвр !б ВР+51-1-быр 16 ВР-г-О1-1-йвр 16 Я+йвр !6 О1+ ймр 16 ВР+йзр 16 ВХ-1-бмр 16 с н о х н 2 х х й х Ф х 2 н а Ф х х ». С.1 О' Ф ГО ФГО 3 а + + Ф о о Ф Ф х < сю -О с ) Ф о 'о о х х О.
й Ф а х а а Х 2 х х са х ха Ф сс е о о Ф о О "о а Осн О-,Р .4 н -о и ос и о Х о. д жо. л Ео. й й ав х с с с х Ф с й с ох с а о с сс Ф с" х Ю ос ° с л -' — Т х М ла а 2 ы оса О. н и ~~~~ Х П323 О 1111 11 ,%»» а» ос~о й ы~ ~ ~ Ф х Ф о х н х 2 ~Ф О н ~,Х х ы х х -с о Ф 2 Ф С о Ф Ф а а О О Ф и ы х < х О Ж о х н $ » н Ф се Ю ~2 ~7 С о. о 3 жхх С»» ° О"О. -~ а а о-м~о й о х х х Ф х н х х Ф С о О- о. ~н О- О., Ф 3 Щ Ф +- -';"- О. ~.3 а Ф 'О О Ф О+"О ) Ф Ю Ф х Ф я м О С о ~5 л л о б о ~5 н~ о б б Ф о и о Ф Ф о Ю 'о Ф и Ф о о о и х М о о н н но Ф хха ао О х о .В- <в 2 х х:с Ф ОФ О Оох охх ххо «» Ф н х = о. Ф ~хн н ~ %~о Ь4 л ~.) о) о, с о' о ~-> о й Ф С О. Ф н о х * с * Ф х О.
о о о Ф Ы 1 Ф х х О Ф о х ( и *х х н х н н х Ф О н Е— й с й с х 2 о й с й о 2 ОО о О й ОО х у й О Й О М а \ с к 2 с й й ОО О х 2 с О" о х й О й й Ф вЂ” о у ой х СО С ОО й й уй у О' о с ос й у й с к й й ". й й й О а он й й х х х а ОС 2 й* ау й й е й О С О й х у й с й й ой о* О ф О СО с й О О й й с О О й оу а у й о 1 ОО й й о2 й ОО с й й й 2 йв у й о. й о.,й й й О.
й о В ы й о й о й о 2 й с хс х у о ) ОС й йй й ы %й й й сх ~ с -о х— о о О Ой '6- $ а ~~о ~ Ы. о о- ~( 1 -~о о С 2 у ° с О й й Ф О аы у й о. йв у й 2 й й цй% й с о о о й 'с х и й Ой у 2 ОО й с , с йо ы О уй й2 с~ С х -о хо 2.: ы ( й й о Р о Ф Ф о Ф Ф 1 0 Р О Ф Ф о 'О О. с Ф И Ф о Р Ф Ф Ф о Ф Р о г Ф ! о Ю о о Ф Ф 2 Ф С 2 Ф ° \ ° с> Ф к Ф Ф Ф Ф РХ Д о Р О О~ Ф ФХ Х= ХД= ДЛ! ' ХХ- ХДХ о Я й Ф х о Ф,' Фс О О о Р Р 0 1 Ф ФХ 01 С Ф ХД О о Ф Ф Р 'О 2 к Ф 0 О 0 к Ф О 'О Ф 0 2 Ф о Ф Ф ЬР 'Х О ' о РХ РД о 0 с[ Ф ФХ Х- Д Х'Д = Х Х.— ДХ <-'. Ф,а ФЕ « 2 0 Р Р 1 к Ф 1 .О К Ф Ф Ф Р о Р Р а о .. х о- х ас сс 0 1 Ф о О. Ю о" Ф аО С 00 аХ ас ас о с сс ХХ ДД Ц Ч/~~ ХХ с ЙХ ".О..
с О к Ф <с ск' ' с !1;: о ФФ '.О "0 Ф Ф Фс ) Ю сЯ Ф В со с 1 ~л Д Ф Р О "о Ф Ы с. о х Ф а с Ф о а. Ф с о с Ф Ф с '% 0 Ф х с Ф 2 Г. с Ф с с с с с с Ф с о х о а с Х с с с а 190 о* Ф с ос од о о Ф с о с с а ( .с* од 2 хх о. х а о Ф с. Ф й~ Ф Ф Х с~1 й ~2 "Ф ЭЭ Э О Р Ф со с О О. )! ю о о ФФ "о Ф с Фс с ЫМ ~х оо с Ф 3 Ф .о о ~й :о с ' Ф о сс о ос О 1 со о . .а (! ю' Ф с Ф 1о Ф Ф 'Ф' Ф с. Ф х Ф с Ф Ф Ф ос Ф х х х Н Ф с ' а * х Ф е й х Ф х Ф с х с Ф $ =1 а х х с „с 1а х х Ы Ф с Ф о о "1 Ф у с с у с Ф 1о $- а 'Э Ю й. » о О й. 1 А > 4 О. с С О.
с л о й 4 О й О О б х и й. о с о с о о ~ в д Л 4~ 4 о х О. 4 о х Й 4 й. о х 3 О и Б Ж Ф ~О о ~й "З + о М О С М 2. о 19! Л а Р о > Ы Л 2 Е Х О. о О. 1 2 й й О. о о л й й Ю 4~ О С 4 ь Я м Ф > Ы О. а о СО Ф Х о 4 +~~ 2;ь и х й 4 2 з $- $- ) О о > з Б :з ь О. 1 о 0 Х л Х '% с х Р * о * о х Ф Ф х » о Ф У о » о х 1 а. о » о а Ю х х е х х х о Р о ххххх Ф Х Х Ф Ф о»оао ха х хо Ф ' Ф о Ф о с о о о о о о. „ Е х о о х Ф Ф Ф ОХ РО О > Б х: х ".ъ х ООО ь ь о Ю о. х „х х ~3 Н17 й Ф ОО-- о х х о х Ф Р. а Ф 'а 'о вг з Р Х хй В х х Ф х е ° х 2 хх а.
„- х= хх е х о о х х 'а ь —,л '+и 'ох" О х х о. Ф е о Фх ха Ф Ф хо а.1 » ц х ох хо. ) Ф~) Ф Ф х „= 1 1,7 о \ х о Ф Ф о. о- ОО Ф х Ф Ф о Ф о » о Х Р Ф Ф о. о. Ф о о. о с о а о хо Ф о » с о о о СИСТЕМА КОМАНЛ Из-за большой сложности программирования на языке кодовых комбинаций, этот способ практически не находит применения. Широко используется программирование на языке Ассемблера. Поэтому ниже приводится описание системы команд и программирование только на этом языке. Каждое имя в языке Ассемблера имеет определенный тип. Наи- более часто используются следующие типы: ВУТЕ РТК вЂ” обозначает !6-разрядный адрес (смещение) в сег- менте памяти для однобайтовой переменной, %ОКА РТК вЂ” то же для двухбайтовой переменной, 0%0КП РТК вЂ” то же для четырехбайтовой переменной, )а(ЕАК РТК вЂ” то же для команды, на которую выполняется пере- ход внутри сегмента, ГАК РТК вЂ” то же для межсегментного перехода 1а(ЗМВЕК вЂ” обозначает произвольное !6-разрядное число.
Преобразование типа данных производится с помощью следующих операторов: оператор ОБОРВЕТ преобразует адрес, представленный !6-разряд- ным смещением в сегменте, в число (РТК вЂ” )а)()МВЕК), оператор ЯЕ0 преобразует !6-разрядный базовый адрес сегмента в число (РТК -а- Х()МВЕК). В приводимом в табл,4.5 списке команд микропроцессора при- няты следующие обозначении:  — байт, % — слово, 0 — двойное слово, бэ1 и згс -.
— операнды (один из них должен быть регистром), г)а1а — обозначение непосредственного операнда, который должен быть выражением типа )э1)МВЕК, сп1 — число разрядов, на которое производится сдвиг операнда Ж1; если в поле сп1 записывается СЕ, число сдвигов равно содержимо- му регистра С!., гед — любой регистр АХ ... П! в операциях над слонами или лю- бой однобайтовый регистр в операциях над байтами, эгей — любой сегментный регистр СЯ ... ЕЯ, Г(.А05 — регистр признаков. 1!СЕБ11ОКОМАНЛБ! АССЕМБЛЕРА В табл.4.6 приведен список псевдокоманд, используемых при программировании для сообщения транслятору необходимой информации.
Псевдокоманда Е(„1() используется для задания используемой в программе переменной некоторого значения. Эту псевдокоманду удобно использовать в тех случаях, когда предусматривается повторное выполнение программы с измененным значением некоторой константы, встречающейся во многих местах программы. Тогда в 193 Таблица 4.б Иын нсендо. команды Прнмер Иыпонннемые деастннн В программе везде транслятор заме- няет имя переменной Т!МЕ еначени- ем 5 Резериируетсн память злн однобай- тозои переменной СОР То же для двухбайтовой переменной йМ То же для четырехбайтовой перемен- ной МА5 Определяется начало СЗЕО в сегмен- те Конец в сегменте Установка содержимого сегментного регистра С5 прн выполнении цро.
граммы Задание исполнительного адреса !.й команды программы Заголовок процедуры ТМ Конец прои«дуры ТМ Конец программы г именем 1-й команды РК ЕС)с! Т!МЕ ЕО13 5 СОК 0В? ПМ 0%? МА5 00? СЗЕО 5ЕОМЕХТ 00 5ЕОМЕХТ ЕХ05 А551!МЕ СЗЕО ЕХ05 АЗЯ!МЕ С5: СЗЕЙ 01?О ОНО 0200Х РКОС ЕХОР ЕХ0 ТМ РНОС ХЕАН ТМ ЕХОР ЕХ0 Ри СПОСОБЫ АДРЕСАЦИИ По сравнению с микропроцессором серии КР880„микропроцессор серии КР! 8!О предоставляет более широкие возможности для адресации операндов.
Ниже излагаются эти возможности представления на языке Ассемблера различных способов адресации операндов. Регистровая адресация. При регистровой адресации адресом операнда служит содержимое регистра общего назначения. Йапример, команда А00 АХ, ВХ выполняет операцию (АХ) ~- (АХ) + (ВХ). 194 программе этой константе присваивается имя, а в псевдокоманде Е(Я3 имени присваивается значение. В процессе трансляции везде, где в программе встречается это имя, Ассемблер егозаменяет значением, приведенным в псевдокоманде Е! ?(л.
И если требуется изменить значение такой константы, встречающейся во многих местах программы, то достаточно изменить его значение в псевдокоманде Еь4(л. Псевдокоманды 0В, 0%, 00 определяют память для переменных длиной соответственно 1,2,4 байта. Для обозначения переменной используется символ «?». Запись и 1ИЗР (?) означает массив из и переменных, а приведенное перед псевдокомандой в графе метки нмя есть имя массива и одновременно имя его первого элемента. После метки псевдокоманды двоеточие не ставится (в отличие от меток команд). В качестве регистров могут использоваться двухбайтовые регистры АХ, ..., 01 (при 16-разрядных операндах) или однобайтовые регистры АН„...,0Е (при 8-разрядных операндах). Непосредственная адресация.