Снос зданий:
ecosnos.ru
Главная  Микроустройства: номенклатура изделий электронной промышленности 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [ 69 ] 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

POP d POP В POP PSW RET

ВОССТАНОВЛЕНИЕ ПРЕЖНЕГО

СОДЕРЖИМОГО

РЕГИСТРОВ

ВОЗВРАТ

Обмен данными между основной (вызывающей) программой и подпрограммой может осуществляться несколькими способами; через общие (глобальные) данные; через внутренние регистры; через специально выделенную область параметров; через область данных, размещенную после команды CALL; через стек.

Программирование ввода-вывода. Для микропроцессорных систем разработано три основных режима ввода-вывода: программио-управляемый-(нефорсированный) ввод-вывод; ввод-вывод по прерываниям (или форсированный); ввод-вывод в режиме прямого доступа.

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

Ввод-вывод по прерываниям, подразумевает, что действия по обмену информацией инициируют еами периферийные устройства, генерируя сигналы прерываний или запросов на обслуживание.

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

В микропроцессорных системах Применяются два основных способа ввода-вывода: изолированный (или аккумуляторный) и отображенный на память, отличающиеся адресацией и выбором портов ввода-вывода. Стандартный способ с изолированным вводом-выводом реализуется с точки зрения программирования командами ввода IN и вывода OUT, в которых второй байт (В2) представляет собой адрес порта ввода или вывода. При выполнении команды IN данные из адресуемого порта ввода загружаются в аккумулятор, команда OUT записывает содержимое аккумулятора в адресуемый порт вывода.

При необходимости в МПС на базе МПК580ИК80 аппаратно может быть реализован ввод-вывод, отображенный иа память. В этом случае порты ввода и вывода считаются ячейками адресного пространства памяти, и все ко.м^нды с обращением к памяти, содержащие адреса портов, превращаются в команды ввода-вывода: команды загрузки (например, LDA в микроЭВМ Электроника-60 ) .осуществляют ввод, а команды запоминания (например, MOV в микроэвм Электроника-60) - вывод.

Ассемблер ASM-86

Ассемблер ASM-86, применяемый в микропроцессоре K18I0BM86 (INTEL 8086) [44], поставляется как кросс-ассемблер, предназначенный для выполнения под управлением ОС СР/М на микроэвм, реализованных на базе INTEL 8080 или Ziiog Z80; как ассемблер резидентных систем, включенный в ОС СР/М-86 на микроЭВМ, реализованных на базе INTEL 8086 или 8088. Инструкции в ассемблере ASM-86 записываются в следующем формате; [метка:]



[префикс] мнемоника [оп€ранд(ы)1 [-.комментарий]. Управляющие директивы (табл. 6.7) имеют формат: [имя] директива операнд(ы) [;комментарий]. Имя директивы всегда используется с директивами размещения данных DB, DW, DD, RS.

6.7. Управляющие директивы ассемблера ASM-86

Мнемоника директивы

Назначение

CSEG

DSEG SSEG ESEG

IF и ENDIF INCLUDE

END EQU

DB, DD. DW

RS, RB, RW

TITLE

PAGESIZE PAGE WIDTH EJECT

NOLIST LIST

Ралмещеиие (команд)

программы в кодовом сегменте

программы в сегменте данных

программы в сегменте стека

программы в дополнительном экс-

трасегменте

Установка счетчика смещения относительно текущего значения для обрабатываемого сегмента

Условная .трансляция

Включение внещнего текста (из указанного файла) в данный текст программы Конец исходного текста для ассемблирования Связывание некоторого значения с идентификатором

Размещение одно-, двух- и четырехбайтовых данных в памяти

Резервирование памяти в байтах или двухбайтовых словах

Печать строчной константы в начале каждой страницы листинга

Указание числа строк в странице листинга

Число символов в строке печати

Выделение начала страницы

Директива заменяет form-feed (FF) символ в

печатном файле правильным числом line-fids

(LF)

Блокирование и размещение печати листинга

В ассемблере MCS-86 имеются другие директивы: определения символов - EQU, LABEL, PURGE; резервирования памяти и определения данных - DB, DW, DD, R.ECORD; управления счетчиком размещения и сегментного контроля - SEGMENT/ENDS, ORG, GROUP, ASSUME, PROC/ENDP; связывания программ NAME, PUBLIC, EXTRN, END.

Микропроцессор 8086 имеет 14 16-разрядных регистров, восемь из которых (АХ - D1) являются регистрами общего назначения. Эти же регистры могут выполнять и специальные функции. В целях совместимости набор регистров микропроцессора 8086 включает в себя набор регистров микропроцессора 8080.

Четыре регистра АХ, ВХ, СХ, DX - регистры данных. В командах, операндами которых являются байты, может быть указана -любая половина любого из четырех регистров данных, например, АН илн AL. Другие четыре регистра SP, BP, SI, DI применяются для хранения 16-разрядпых адресов, поэтому их называют адресными, Адресные регистры BP, SI, DI используются в ка-



честве базовых или индексных регистров, а SP - в качестве указателя стека. В качестве базового или индексного можно использовать и регистр ВХ. Помимо подразделения регистров иа регистры данных и адресные существует и более узкая их специализация. В больщинстве команд указывается только одна часть адреса - 16-разрядное смещение в сегменте. Базовый адрес сегмента содержится в одном из четырех сегментных .регистров CS, DS, SS, ES. Функцию счетчика команд выполняет 16-разрядный указатель команд IP.

Разряды состояния и разряды управления процессором объединены в 16-разрядный регистр FLAGS - регистр флажков (рис. 6.9). Назначение разрядов регистра FLAGS следующее: CF - перенос, ZF - нулевой результат, SF - знак, OF - переполнение, AF - перепое при выполнении десятичного сложения или вычитания, PF - четность, DF - применение автодекрементной адресации при выполнении операции обработки строк, IF - разре-щение прерывания на входе INTR, TF - управление прерываниями после каждой операции.

И Ю 9 8 7 6

У .

W/WM

Рис. 6.9.

Программирование на языке ассемблера А5М-8в. Способы адресации в микропроцессоре К1810ВМ86 более развиты по сравнению с К580И80.

Пистбайтовый способ адресации. В некоторых кЪмандах способ адресации задается не в байте кода операции, а в постбайте. Структура постбайта следующая: mod reg г/m. Если в двухразряд-

7 6 4 3 2 10-

НОМ поле mod указывается код Пг, то операндом является содержимое регистра, номер которого задается в трехразрядном поле r/m. В противном случае в полях mod и г/т содержится информация, позволяющая установить один из следующих способов адресации: абсолютная, косвенная регистровая, по базе, с индексированием или по базе с индексированием. Дополнительная адресная информация указывается в одном или двух байтах, которые непосредственно следуют за постбайтом.

Поле reg постбайта используется для адресации тогда, когда в команде задаются два операнда. В этом случае второй операнд всегда находится в регистре, номер которого указывается в поле постбайта. В таких командах как ROL, ROR и других требуется только один операнд. Поле постбайта в этом случае употребляется совместно с байтом кода операнда для задания операции.

Длинная абсолютная адресация. Данная адресация является разновидностью абсолютной адресации. Команда содержит. 16-разрядный базовый адрес сегмента, а также 16-разрядное-смещение (исполнительный адрес). Адресация используется в командах перехода и вызова подпрограмм.

Адресация по базе. Исполнительный адрес операнда формируется путём сложения 16-разрядного адреса, находящегося в указанном базовом регистре, и 8- нли 16-разрядного смещения, содержащегося в команде. Байты смещения располагаются непосредственно за постбайтом.



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 [ 69 ] 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95