Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архит_ЭВМ_лекции.doc
Скачиваний:
125
Добавлен:
04.06.2015
Размер:
19.16 Mб
Скачать

Программирование микропроцессара запись программы

Программист должен:

  1. Знать состав команд МП.

  2. Быть хорошо знаком с расположением регистров МП.

  3. Знать общую архитектуру ЭВМ.

Этапы развития программы могут быть представлены следующим образом:

  • Определить и проанализировать задачу.

  • Начертить структурную схему решения.

  • Записать программу на ассемблере.

  • Записать или генерировать программу в кодах.

  • Загрузить программу на решение.

  • Документировать программу.

Например.

Сложение содержимого трех последовательных ячеек памяти и размещение суммы в памяти.

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

Нарисуем подробную функциональную схему:

Подробная функциональная схема организации решения задачи сильно зависит от архитектуры и состава команд данного МП. В то время, как общая функциональная схема может быть использована для любой вычислительной системы, т.е. она инвариантна по отношению к системе команд и архитектуре.

Затем следует записать версию подробной структурной схемы на ассемблере в 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, понимаемых МП и называемых машинным кодом.

Это можно сделать с помощью специальных программ или вручную.

Вручную кодирование выполняется следующим образом:

  1. найти код операции каждой мнемоники в таблице состава команд.

  2. определить операнды (данные и адреса), когда это необходимо передать командами из нескольких байт.

  3. установить адреса памяти в последовательности каждой команды и операнда.

Шестнадцатеричная

Мнемоника

Операнд

Комментарий

Адрес

Содержимое

2020

2021

2022

21(код операции)

10 (младший байт)

20 (старший байт)

LXI

Н, 2010Н

Загрузить адрес 2010Н в пару регистров HL, как указатель адреса.

2023

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

Остановить программу.

Затем нужно проверить программу в том смысле работает ли она. Эта операция представляет собой процесс отладки программы (поиск и устранение ошибок).

Последним этапом программирования является документирование. Документировать программу значит дать ее описание, указывающее в какой последовательности выполняются операции. Суда входят: блок-схемы алгоритмов вычислений, списки, данные, адреса использованных подпрограмм и развернутый комментарий.

Большие сильно развитые программы требуют тщательно разработанной документации.