- •Министерство образования Российской Федерации
- •Самарский государственный технический университет
- •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
- •Список литературы
80 (Маска)
AND 5
JAZ
00
1D
Таблица 5.8
Программа-загрузчик
Распределение общих регистров:R1:TAH, R3:KAH, R2: TAL, R4:KAL
Ячейка памяти |
Команда на машинном языке |
Команда в символической форме |
Комментарий |
0000 |
7F |
JMS |
Обращение к подпрограмме ввода за ТАН |
0001 |
00 |
00 |
|
0002 |
1D |
1D |
|
0003 |
01 |
MOV 0 to 1 |
|
0004 |
7F |
JMS |
Обращение за ТАL |
0005 |
00 |
00 |
|
0006 |
1D |
1D |
|
0007 |
02 |
MOV 0 to 2 |
|
0008 |
7F |
JMS |
Обращение за КАН |
0009 |
00 |
00 |
|
000A |
1D |
1D |
|
000B |
03 |
MOV 0 to 3 |
|
000C |
7F |
JMS |
Обращение за KAL |
000D |
00 |
00 |
|
000E |
ID |
ID |
|
000F |
04 |
MOV 0 to 4 |
|
0010 |
7F |
JMS |
Начинается цикл ввода слов |
0011 |
00 |
00 |
|
0012 |
1D |
1D |
|
0013 |
OF |
MOV 0 to F |
Передача слова в М[ТА] |
0014 |
F5 |
IHL |
ТА + 1 — >ТА. |
0015 |
14 |
MOV 0 from 4 |
Вычитание с двойной точностью ТА из КА |
0016 |
A2 |
SUB 2 |
Устанавливается С=1, если ТА > КА |
0017 |
13 |
MOV 0 from 3 |
|
0018 |
Bl |
SBC 1 |
|
0019 |
7C |
JCZ |
Проверка заема в С. Если нет заема |
001 A |
00 |
00 |
ввод нового слова |
001 В |
10 |
10 |
|
001 С |
FA |
HLT |
Останов |
001 D |
FD |
INP |
Начало программы ввода. Ввод слова |
001 E |
00 |
00 |
состояния. |
001 F |
7A |
JAP |
Проверка разряда знака в слове состоя |
0020 |
00 |
00 |
ния. Если 0, повторить проверку |
0021 |
ID |
ID |
|
0022 |
FD |
INP |
Ввод слова в аккумулятор из устройства |
0023 |
01 |
01 |
ввода |
0024 |
F8 |
RET |
Возврат из подпрограммы |
5.7. Программирование на языке ассемблера
До сих пор мы занимались программированием на машинном языке. Это единственный вид программ, которые непосредственно воспринимает аппаратура микропроцессора. Однако, как легко видеть, даже не очень сложные задачи требуют для своего решения достаточно больших программ, и их составление — дело трудоемкое и кропотливое. Поэтому создаются специальные средства, облегчающие подготовку программ на машинном языке.