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
Рис. 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-разрядного смещения, содержащегося в команде. Байты смещения располагаются непосредственно за постбайтом. |