- •Министерство образования Российской Федерации
- •Самарский государственный технический университет
- •2. Оформление курсового проекта
- •3. Описание вариантов заданий
- •Перечень операций подлежащих программированию
- •4. Архитектура микропроцессоров
- •4.1. Микрокомпьютер
- •4.2. Структура микропроцессора
- •4.3. Блок управления и синхронизации
- •4.4. Система команд
- •4.4.1. Фаза выборки и дешифрации
- •Обозначения, используемые при описании команд,
- •Команды передач управления
- •Команды обращения к подпрограммам
- •Арифметические и логические команды
- •Команды ввода/вывода
- •Специальные команды
- •4.4.2. Фаза выполнения
- •Команды пересылки
- •Команды с непосредственным адресом
- •Команды обращения к памяти
- •Команды передачи управления
- •Команды обращения к подпрограммам
- •Арифметические и логические команды
- •Команды ввода/вывода
- •Специальные команды
- •4.5. Способы адресации
- •Прямая адресация
- •Непосредственная адресация
- •Индексная адресация
- •Косвенная адресация
- •Относительная адресация
- •Страничная адресация
- •4.6. Некоторые другие команды, специфичные для микропроцессоров
- •Арифметические и логические команды с операндами в главной памяти
- •Команды условных переходов
- •Команды обработки данных
- •5. Программирование для микропроцессоров
- •5.1. Программирование на машинном языке
- •Пример программы: «прибавить константу к числу в памяти и записать результат снова в память»
- •5.2. Разветвления в программах
- •5.3. Программирование циклов
- •Программа вычисления суммы десяти 8-битовых чисел без знаков
- •5.4. Программирование сложных разветвлений
- •Программа сложного разветвления, использующая таблицу переходов
- •5.5. Подпрограммы
- •Вход в подпрограмму и выход из подпрограммы
- •Параметры подпрограммы
- •Пример передачи параметров от главной программы в подпрограмму через общие регистры
- •Сложение с п-кратной точностью
- •Подпрограмма сложения чисел с двойной точностью
- •Умножение
- •5.6. Загрузка программ
- •Подпрограмма умножения целых положительных чисел Распределение общих регистров: r2: счетчик, r3: множимое y, r4: множитель X, r5: ст. Часть произведения Рн, r6:мл. Часть произведения pl
- •80 (Маска)
- •Программа-загрузчик
- •5.7. Программирование на языке ассемблера
- •Ассемблеры
- •Язык ассемблера
- •Программа на языке ассемблера, соответствующая программе табл. 5.3
- •Директивы ассемблера
- •Макрокоманда
- •Список команд иллюстрированного микропроцессора
- •Список команд иллюстративного микропроцессора
- •Условные графические обозначения в схемах
- •Продолжение Приложение п3
- •Продолжение Приложение п3
- •Продолжение Приложение п3
- •Список литературы
- •Содержание и объем курсового проекта …………………………….
- •Оформление курсового проекта ……………………………………...
- •Продолжение Приложение п2
- •Продолжение Приложение п2
- •Продолжение Приложение п2
- •Продолжение Приложение п2
- •Приложение п2
- •Приложение п2
- •Список литературы
Команды ввода/вывода
Команда: .INPUT (ввод)
Символическая форма: INP
Описание: Устройство ввода [<В2>] Асc
Байт данных передается в аккумулятор от устройства ввода, номер которого задан вторым байтом команды INP.
Команда: OUTPUT (вывод)
Символическая форма: OUT
Описание: (Асc) устройство вывода [<В2>]
Содержимое аккумулятора передается на устройство вывода, номер которого задан вторым байтом команды OUT.
Специальные команды
Команда:INCREMENT REGISTER PAIR Н AND L (увеличение на 1 содержимого пары регистров Н и L)
Символическая форма: IHL
Описание: (Н) (L) + 1 HL
16-разрядное двоичное число, содержащееся в регистрах Н и L, увеличивается на 1 по модулю 216.
Команда: DECREMENT REGISTER PAIR Н AND L (уменьшение на 1 содержимого пары, регистров Н. и L)
Символическая: форма: DHL
Описание: (Н) (L) — 1 HL
16-разрядное двоичное число, содержащееся в регистрах Н и L, уменьшается на 1 по модулю 216.
Команда: PUSH DATA ONTO STACK (поместить данные в стек)
Символическая форма: PUSH
Описание: (Stacki) Stack i + 2 t = l, 2, ..., 6210
0000000 (С) (Асc) Stack2
(Н) (L) Stack1
Стек опускается дважды. В результате во втором регистре стека оказывается значение аккумулятора с переносом, а в первом (вершине стека) содержимое пары регистров Н и L.
Команда: POP DATA FROM STACK (извлечь данные из стека)
Символическая форма: POP
Описание: (Stack1) HL
(Stack L2) Acc
(Stack H02) C
(Stacki) Stacki-2 i = 3, 4, ..., 6410
(Stackj) Stackyj j = 63, 64
Содержимое вершины стека передается на пару регистров Н и L. Содержимое младшей половины второго регистра стека передается в аккумулятор, а младший бит старшей половины этого же регистра передается на триггер переноса С. Стек поднимается дважды, причем состояние двух нижних регистров остается без изменений.
Команда: ENABLE INTERRUPT (разрешить прерывания)
Символическая форма: EIT
Описание: 1 флажок прерываний
На триггере, называемом флажком прерываний, устанавливается 1 после выполнения команды, следующей за данной командой
Команда: DISABLE INTERRUPT (запретить прерывания)
Символическая форма: DIT
Описание: 0 флажок прерываний
Триггер, называемый флажком прерываний, сбрасывается.
Команда: NO OPERATION (пустая команда)
Символическая форма: NOP
Описание: При выполнении этой команды никаких действий не выполняется.
Команда: HALT (останов)
Символическая форма: HLT
Описание: Выполнение команд прекращается до прихода импульса на линию „пуск".
Рис. 4.5 Информационные потоки в фазе выборки -
дешифрации командного цикла
Первый этап выполнения любой команды — это чтение команды из памяти. Чтение каждого байта команды занимает один машинный цикл. На рис. 4.5 показаны основные информационные потоки в фазе выборки-дешифрации командного цикла. 16-битовый адрес первого байта команды передается в память по шине адреса с программного счетчика. Устройство управления формирует сигнал «чтение», благодаря которому содержимое адресуемой ячейки выдается из памяти на шину данных и затем принимается в регистр команд. Этот первый байт, содержащий код операции, дешифруется дешифратором команд, при этом выясняется, сколько байтов в команде. Одновременно увеличивается программный счетчик.
Если обнаруживается, что в команде есть еще один или два байта, то затрачивается еще один или два машинных цикла на то, чтобы аналогичным образом выбрать следующий байт или байты из памяти. Однако приемником этих байтов оказывается уже не регистр команд, а либо регистр адреса данных, если команда не является командой с непосредственным адресом (этот путь показан на рис. 4.5), либо один из общих регистров, если команда является командой с непосредственным адресом. В любом случае фаза выборки-дешифрации завершается после второго синхроимпульса последнего машинного цикла.