- •Составитель: Валерий Анатольевич Засов
- •Рецензенты: генеральный директор научно-производственного центра «Информационные и транспортные системы», д.Т.Н., профессор с.В. Архангельский
- •Оглавление
- •1.Принципы организации классической эвм
- •2.Структурная организация процессора
- •3.Принципы организации и программирование
- •4.Принципы организации и программирование
- •5.Структурная организация современных
- •Приложение 1.Список основных команд микропроцессора i8080
- •1.Принципы организации классической эвм и определение микропроцессорной системы
- •1.1.Принципы организации эвм Дж. Фон-Неймана
- •1.2.Определение микропроцессора и микропроцессорной системы
- •1.3.Понятие архитектуры микропроцессорной системы
- •1.4.Структура типовой микропроцессорной системы
- •1.4. Командный цикл и его фазы
- •Контрольные вопросы и задания
- •2.2.Устойство управления с аппаратной логикой
- •2.3.Устройство управления с программируемой логикой
- •2.4.Функция и структура арифметико-логического устройства
- •2.5.Система команд процессора и способы адресации
- •Контрольные вопросы и задания
- •3.Принципы организации и программирование
- •3.1.Структурная схема 8-разрядного микропроцессора
- •3.2.Программная модель 8-разрядной микропроцессорной системы
- •3.3. Способы адресации данных в 8-разрядной микропроцессорной системе
- •3.4.Программирование на ассемблере 8-разрядного микропроцессора
- •3.5. Инструментальные средства разработки и отладки программ для 8-разрядных микропроцессоров
- •3.6. Пример решения задачи
- •3.7.Функциональная схема ядра 8-разрядной микропроцессорной системы
- •Контрольные вопросы
- •4. Принципы организации и программирование
- •4.1. Структурная схема микропроцессоров семейства i8086/8088
- •4.2.Функциональная схема центрального процессора на базе микропроцессора i8086/8088
- •Типы циклов шины мп i8086/8088 Таблица 4.2.
- •4.3. Конвейерный метод выполнения команд и направления его развития
- •4.4. Сегментная организация памяти и ее эволюция
- •4.5.Адресное пространство ввода – вывода
- •4.6.Программная модель микропроцессоров i8086/8088 и способы адресации
- •4.7. Описание системы команд 16-разрядного микропроцессора
- •4.8. Основные элементы программ на языке Турбо ассемблер
- •Контрольные вопросы и задания
- •5.Структурная организация современных микропроцессоров
- •5.1.Структура микропроцессора Intel Pentium 4
- •5.2.Структура микропроцессора amd Athlon
- •5.3.Гиперпотоковая технология организации вычислений
- •5.4.Эффективность многоядерной архитектуры микропроцессоров
- •5.5.Регистровые структуры 32-разрядных микропроцессоров
- •5.6.Регистровые структуры 64-разрядных микропроцессоров
- •5.7.Обобщенный формат команд и типы данных
- •Контрольные вопросы и задания
- •6. Организация памяти в микропроцессорных
- •Системах
- •6.1.Назначение, основные параметры и классификация видов памяти
- •6.2. Иерархическая структура памяти мс
- •6.3. Оперативные запоминающие устройства
- •6.4. Постоянные запоминающие устройства
- •7. Интерфейсы микропроцессорных систем
- •7.1. Назначение и функции интерфейсов
- •7.2. Принципы организации и классификация интерфейсов
- •7.3. Система интерфейсов компьютера
- •8.Способы обмена информацией между устройствами микропроцессорной системы
- •8.1. Программно – управляемый обмен и прямой доступ к памяти
- •8.2. Организация прерываний в мс
- •8.3. Циклы шины
- •9. Программируемый периферийный адаптер
- •9.1. Назначение, структурная схема и режимы работы программируемого периферийного адаптера
- •9.2. Управление работой программируемого периферийного адаптера
- •9.3. Примеры программирования периферийного адаптера
- •Признак pc7-pc4
- •Канал а Канал в
- •Контрольные вопросы и задания
- •10. Программируемый интервальный таймер.
- •Организация счета времени и событий
- •10.1.Назначение, структурная схема и программирование таймера.
- •10.2.Режимы работы таймера
- •10.3. Примеры программирования таймера
- •10.4. Организация счета времени и событий в мс
- •Контрольные вопросы и задания
- •Рассмотрим основные блоки программируемого связного адаптера.
- •11.2. Режимы работы связного адаптера
- •11.3. Управление работой и программирование связного адаптера
- •9.4. Особенности программирования асинхронных адаптеров коммуникационных портов компьютеров
- •11.5. Организация обмена между компьютерами по интерфейсу rs-232с
- •Контрольные вопросы и задания
- •Б иблиографический список
- •Список основных команд микропроцессора i8080
- •Список основных команд микропроцессора i8086/8088 и директивы языка Турбо Ассемблер
- •Основные директивы (псевдокоманды) языка
- •Турбо Ассемблер (tasm)
- •Типы символов в tasm
- •Команды передачи данных
- •Арифметические команды
- •Логические команды и команды сдвигов
- •Строковые или цепочечные команды
- •Команды передачи управления
- •Коды условий перехода (сс)
- •Команды управления микропроцессором
3.4.Программирование на ассемблере 8-разрядного микропроцессора
Ассемблер – язык программирования низкого уровня, команды которого ориентированы на определенный тип процессора и обеспечивают максимальное использование ресурсов ВМ. Программы, написанные на ассемблере, требуют меньшего объема памяти и являются более быстродействующими по сравнению с такими же программами, написанными на других языках. Поэтому ассемблер часто используется для разработки программного обеспечения встраиваемых ВМ и контроллеров, работающих в реальном масштабе времени. Ассемблер – это символическое представление языка процессора, и поэтому он удобен для изучения аппаратных средств ВМ.
С другой стороны, программирование и отладка разработанного на ассемблере программного обеспечения является более трудоемкими по сравнению с другими языками программирования, требуют от программиста хороших знаний аппаратных средств компьютера. Переход на другую аппаратную платформу часто сопряжен с изменением написанного на ассемблере программного обеспечения.
Программа на ассемблере – это набор строк, состоящий из следующих полей /12/:
Метка: Операция Операнд; Комментарий.
Поля отделяются друг от друга не менее, чем одним пробелом. Метка используется для обозначения адреса ячейки памяти, в которой хранятся данные или первый байт команды. Она может состоять из 6 символов, не должна включать знаков пунктуации и пробелов, причем первым символом должна быть буква. Если метка находится в поле меток, то почти всегда должна отделяться двоеточием.
Операция – мнемоническая запись из двух-четырех букв, которые указывают на характер действий, выполняемых МП.
Операнд – часть команды, которая может содержать название регистра или регистровой пары, двухбайтовый адрес ячейки памяти, однобайтовый адрес порта ввода или вывода, одно- или двухбайтовое слово данных, метку (метка в данной области двоеточием не отделяется). Если в команде два операнда, то они разделяются запятой. Совокупность операнда и операции – мнемокод команды.
Комментарий пишется либо в соответствующем поле, либо в отдельной строке. Он всегда начинается знаком « ; ».
В строках ассемблера могут записываться команды, псевдокоманды, макрокоманды, комментарии.
Команды управляют работой процессора и обработкой данных. После выполнения программы ассемблирования каждая команда преобразуется в машинные коды объектного модуля. В Приложении 1 приведена система команд МП i8080 (К580ВМ80А).
Псевдокоманды (директивы) управляют программой ассемблирования. После выполнения трансляции, псевдокоманды в машинные коды не преобразуются. Основные псевдокоманды (директивы) ассемблера МП i8080 (КР580ВМ80А) следующие:
ORG ADR – директива установки адреса для компилятора. Директива устанавливает значение адреса первой команды программы, полученной в результате ассемблирования, равным ADR.
Директивы определения имен:
EQU – эквивалент, присваивает символическому имени, записанному в поле метки, числовое значение, записанное в поле операнда. После символического имени в поле метки двоеточие не ставится. Каждое символическое имя может использоваться в поле метки директивы EQU только один раз.
Пример:
DOS EQU 400H ; имени DOS присваивается шестнадцатеричное
RAMN EQU DOS + 32H ; число 400, а имени RAMN – 432.
SET – директива установки значения выполняет ту же функцию, что и EQU, но числовое значение символического имени можно изменять с помощью другой директивы SET.
Директивы определения данных:
DB – директива определения байта данных создает в памяти массив однобайтовых констант, либо цепочки символов заключенной в апострофы и общей длиной до 64 символов. Между константами и между цепочками символов ставятся разделительные запятые. При выполнении директивы DB элементы массива запоминаются в смежные ячейки памяти. Этой области памяти присваивается символическое имя, отмеченное в области метки директивы.
Пример:
ARM: DB – 18; Операнд в дополнительном коде (число 18) размещается в байте памяти с ;именем ARM.
DW – директива определения слова данных аналогична директиве DB, только в DW каждая константа размещается не в байте, а в паре смежных байт. Старший байт запоминается по адресу на единицу больше предыдущего.
Пример:
DATA: DW 442H, TASK, 3275Q; Операнд размещается в трех последовательных ;двухбайтовых словах: в первом – шестнадцатеричное число 442, во втором – адрес ;оператора, имеющего метку TASK, в третьем – восьмеричное число 3275.
Директива прекращения ассемблирования – END указывает физический конец исходного модуля.
Программа исходного модуля, написанная на языке Ассемблера процессора i8080 (КР580ВМ80А), должна иметь следующую структуру /11/:
-
текстовые комментарии, поясняющие назначение модуля и т.д.;
-
директивы определения имен (EQU, SET);
-
директива ORG;
-
директивы определения данных и области памяти (DB, DW, DS);
-
макроопределения, если их нет в системной программе Ассемблера;
-
подпрограммы;
-
главная программа;
-
директива END.