- •Министерство образования и науки
- •Содержание
- •Информационный процесс, Сигналы
- •Логические состояния
- •Системы счисления
- •Логические элементы и таблица истинности
- •Логическое сложение, дизъюнкция, элемент или
- •Логическое умножение, конъюнкция, элемент и
- •Логический элемент не, отрицание, инверсия
- •Минимизация логических выражений с помощью карт карно
- •Карта карно для двух переменных
- •Карта карно с тремя переменными
- •Карта карно для четырех переменных
- •Комбинационные функциональные схемы
- •Счетверенная двухвходовая схема выборки
- •Мультиплексоры
- •Сумматоры
- •Компараторы
- •Обратные преобразования, записанные в дополнительном коде
- •Арифметика в дополнительном коде
- •Последовательная логика
- •Регистры
- •Параллельно – параллельный четырехразрядный регистр на rs – триггерах
- •Счетный триггер
- •Счетчики
- •Счетчик на сложение
- •Счетчик на вычитание
- •Реверсивный счетчик
- •Счетчик заданной длины
- •Линейные дешифраторы
- •Линейный дешифратор на 10
- •Основы микропроцессорной техники Архитектура эвм
- •Работа эвм
- •Группировки бит
- •Буквенно-цифровой код
- •Тристабильные элементы
- •Структура оперативной памяти
- •Основы микропроцессорной техники
- •Архитектура простой эвм
- •Структура простейшей памяти
- •Состав команд
- •Структура типового микропроцессора
- •Функционирование Эвм
- •Микропроцессор. Поставляемая разработчиком документация
- •Использование регистра, адреса / данных
- •Этапы обработки требования прерывания в микропроцессоре
- •Указатель стека
- •Программирование микропроцессора Состав команд арифметических действий
- •Состав команд логических операций
- •Команда или
- •Команда или – исключающее
- •Команда циклического сдвига с переносом
- •Состав команд операций передачи данных
- •Состав команд операций ветвления
- •Состав команд операций вызова подпрограмм и возврата в основную программу
- •Программирование микропроцессара запись программы
- •Ветвление программ
- •Использование подпрограмм
- •Интерфейс микропроцессора
- •Основные элементы интерфейса портов ввода/вывода
- •Список литературы
Программирование микропроцессара запись программы
Программист должен:
Знать состав команд МП.
Быть хорошо знаком с расположением регистров МП.
Знать общую архитектуру ЭВМ.
Этапы развития программы могут быть представлены следующим образом:
Определить и проанализировать задачу.
Начертить структурную схему решения.
Записать программу на ассемблере.
Записать или генерировать программу в кодах.
Загрузить программу на решение.
Документировать программу.
Например.
Сложение содержимого трех последовательных ячеек памяти и размещение суммы в памяти.

Эта схема называется функционально-структурной. Она не содержит адекватных деталей, которые не позволяют перейти ее прямо в сегмент программы на ассемблере или в машинном коде.
Нарисуем подробную функциональную схему:

Подробная функциональная схема организации решения задачи сильно зависит от архитектуры и состава команд данного МП. В то время, как общая функциональная схема может быть использована для любой вычислительной системы, т.е. она инвариантна по отношению к системе команд и архитектуре.
Затем следует записать версию подробной структурной схемы на ассемблере в 4 типовых поля: метка, мнемоника, операнд и комментарий.
|
Метка |
Мнемоника |
Операнд |
Комментарий |
|
|
LXI |
Н, 2010Н |
Загрузить адрес 2010Н в пару регистров HL. Эта пара регистров используется как указатель адреса. |
|
|
MOV |
А, М |
Поместить первое число из ячейки памяти с адресом 2010Н в аккумулятор (А). |
|
|
INX |
Н |
Инкрементировать пару регистров HLдо 2011Н. |
|
|
ADD |
М |
Сложить второе число в ячейке памяти 2011Н с содержимым А. |
|
|
INX |
H |
Инкрементировать пару регистров HLдо 2012. |
|
|
ADD |
M |
Сложить третье число в ячейке памяти 2012 с содержимым А. |
|
|
INX |
Н |
Инкрементировать пару регистров HLдо 2013. |
|
|
MOV |
М, А |
Поместить сумму из А в ячейку памяти 2013. |
|
|
HLT |
|
Остановить МП. |
Метку пока опустим, комментарий оказывает большую помощь в понимании действия каждой команды.
Записанная версия должна быть переведена в состав бит из 0 и 1, понимаемых МП и называемых машинным кодом.
Это можно сделать с помощью специальных программ или вручную.
Вручную кодирование выполняется следующим образом:
найти код операции каждой мнемоники в таблице состава команд.
определить операнды (данные и адреса), когда это необходимо передать командами из нескольких байт.
установить адреса памяти в последовательности каждой команды и операнда.
|
Шестнадцатеричная |
Мнемоника |
Операнд |
Комментарий | |
|
Адрес |
Содержимое | |||
|
2020 2021 2022 |
21(код операции) 10 (младший байт) 20 (старший байт) |
LXI |
Н, 2010Н |
Загрузить адрес 2010Н в пару регистров HL, как указатель адреса. |
|
2023 |
7Е |
MOV |
А, М |
Загрузить первое число из ячейки памяти с адресом 2010Н в А. |
|
2024 |
23 |
INX |
Н |
Инкрементировать пару регистров HLдо 2011Н. |
|
2025 |
86 |
ADD |
М |
Сложить второе число с адресом 2011Н с содержимым А. |
|
2026 |
23 |
INX |
H |
Инкрементировать пару регистров HLдо 2012. |
|
2027 |
86 |
ADD |
M |
Сложить третье слагаемое из ячейки памяти 2012 с содержимым А. |
|
2028 |
23 |
INX |
Н |
Инкрементировать пару регистров HLдо 2013. |
|
2029 |
77 |
MOV |
М, А |
Поместить сумму из А в ячейку памяти, на которую указывает содержимое пары регистров HL. |
|
202А |
76 |
HLT |
|
Остановить программу. |
Затем нужно проверить программу в том смысле работает ли она. Эта операция представляет собой процесс отладки программы (поиск и устранение ошибок).
Последним этапом программирования является документирование. Документировать программу значит дать ее описание, указывающее в какой последовательности выполняются операции. Суда входят: блок-схемы алгоритмов вычислений, списки, данные, адреса использованных подпрограмм и развернутый комментарий.
Большие сильно развитые программы требуют тщательно разработанной документации.
