на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Программное обеспечение встроенных систем управления на базе однокристальных микропроцессоров (МП)
p align="left">3 Составление схем алгоритмов

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

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

Схема алгоритма решения этой задачи показана на рис. 1.5.

Рисунок 1.5 - Схема алгоритма с ветвлением

4 Подпрограммы

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

Кроме того, по команде выполняются действия, необходимые для возвращения к основной программе после выполнения подпрограммы:

а) в счетчике команд фиксируется адрес команды в основной программе, которая следует за командой вызова;

б) содержимое счетчика команд (адрес возврата) загружается в стек, содержимое указателя стека модифицируется;

в) в счетчик команд загружается адрес, задаваемый командой вызова. После этого может начаться исполнение подпрограммы.

Последней выполняемой командой подпрограммы является команда RET (return - возврат). По этой команде выполняется возврат к основной программе, прерванной командой вызова. Команда возврата содержит только код операции. По этой команде происходит следующее: а) счетчик команд получает из стека адрес команды в основной программе, следующей за командой вызова; б) содержимое указателя стека соответственно модифицируется.

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

Из одной программы можно производить обращение к нескольким подпрограммам.

Одна подпрограмма может обращаться к другой. Такое построение подпрограмм называется ВЛОЖЕНИЕМ.

Глубина допустимого уровня вложения подпрограмм зависит от типа вычислительной машины и используемого языка программирования. Большинство современных МП и языков программирования допускает многоуровневое вложение. Как следует из вышеизложенного, использование подпрограмм - не слишком обременительная работа для программиста.

5 Программирование в машинных кодах

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

В качестве примера линейной программы в машинных двоичных кодах рассмотрим программу сложения двух чисел, одно из которых 01100100 находится в регистре общего назначения (РОН) В, а второе - 00010111 расположено в ячейке памяти с адресом 0000 0000 1000 1111. Напомним, что рассматриваемый МП имеет шестнадцатиразрядную шину адреса. Фрагмент программы приведен в табл. 1.1.

Таблица 1.1 - Программа сложения в машинных кодах

Адрес памяти

Мнемокод

0000 0000 0000 0100

01111000

0000 0000 0000 0101

00100001

0000 0000 0000 0110

10001111

0000 0000 0000 0111

00000000

0000 0000 0000 1000

10000110

0000 0000 0000 1001

01110110

. . . . . . . . . . . . . . . . .

. . . . . . . . .

0000 0000 0000 0100

00010111

Таблица 1.2 - Программа сложения в шестнадцатеричных кодах

Мнемокод

Адрес

Н - код

Vt

MOV A,B

0004

78

5

LXI H

0005

21

16

0006

8F

0007

00

ADD M

0008

86

7

HLT

0009

76

7

. . . . . . . . .

. . . . . .

. . . . . .

. . . .

008F

17

Первая команда - пересылка содержимого регистра В в аккумулятор - является однобайтовой, имеет код операции. Код операции расположен в ПЗУ по адресу 0000 0000 0000 0100, который для данной программы является начальным.

Следующая команда - трехбайтовая, имеет код операции 00100001, представляющий первый байт команды. Второй и третий байты, расположенные в очередных ячейках ПЗУ, содержат соответственно младшую и старшую части адреса 1000 1111 0000 0000, передаваемые по этой команде в регистровую пару H и L.

Микропроцессор при выполнении программы последовательно обращается к ячейкам памяти и выполняет поочередно все команды. Напомним, что коды операций и операнды хранятся в памяти в одинаковом виде и их различение осуществляется микропрограммами выполнения команд, заложенными в МП. Последняя команда имеет код 01110110 и является командой останова (HLT).

В результате выполнения программы в аккумуляторе окажется записанным число 01111011.

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

В табл. 1.2 приведен фрагмент той же самой программы, записанной в шестнадцатеричных кодах. Рядом с кодом операции показаны его мнемоническое изображение и наименования операндов, принятые в системе команд данного МП. Например, шестнадцатеричный код команды 78, имеющей мнемоническое обозначение MOV A,B, соответствует операции пересылки содержимого регистра В в аккумулятор А. В табл. 1.2 также указано число тактов Vt, необходимое для выполнения каждой команды. Для выполнения всей программы требуется 35 машинных тактов.

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

6 Программирование в мнемокодах

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

Пример 1.1. Организация счетчиков циклов. Схема алгоритма счета показана на рис. 1.6, а фрагмент программы приведен в табл. 1.3.

Рисунок 1.6 - Схема алгоритма счета циклов

Счетчиком служит один из РОН - регистр В. По команде MVI B, N в него заносится число N, определяющее количество повторяемых циклов. В данной программе N=16. Для определенности принято, что участок программы, который необходимо повторить 16 раз, начинается командой логической операции «ИСКЛЮЧАЮЩЕЕ ИЛИ» XRA A, расположенной по адресу 1002, и заканчивается командой пересылки из аккумулятора в регистр D: MOV D, A, расположенный по адресу 10А1. После каждого выполнения этого участка программы содержимое счетчика (регистра В) уменьшается на единицу посредством команды DCR B (адрес 10А2). До тех пор, пока содержимое регистра В отлично от нуля, признак Z имеет нулевое значение и программа переходит к выполнению команды, адрес 1002 который содержится во втором и третьем байтах команды JNZ (переход по отсутствию нуля). Указанный адрес отмечен в программе меткой М1, т.е. метка М1 является мнемоническим обозначением адреса 1002.

Таблица 1.3 - Программа счета циклов

Метка

Мнемокод

Операнд

Адрес

Н - код

Комментарий

Vt

. . . . . . .

. . . . . . .

. . . . . .

. . . . . .

. . . . . . . . . .

. .

MVI

B, 16

1000

06

Установка счётчика

7

1001

10

N=16 в (B)

M1:

XRA

A

1002

AF

Обнуление признака переноса

4

. . . . . . .

. . . . . . .

. . . . . .

. . . . . .

. . . . . . . . . .

. .

MOV

D, A

10A1

57

Пересылка содержимого А в регистр D (D:=A)

5

DCR

B

10A2

05

Уменьшение содержимого счётчика на 1

5

JNZ

M1

10A3

C2

Переход по условию (N) 0 к ячейке памяти с адресом 1002

10

10A4

02

10A5

10

. . . . . . .

. . . . . . .

. . . . . .

. . . . . .

. . . . . . . . . .

. .

Если в результате очередного вычитания единицы содержимое регистра В окажется равным нулю (Z=1), то программа перейдет к выполнению команды, расположенной за JNZ. Происходит выход из циклического участка программы. Поскольку регистр В имеет восемь двоичных разрядов, рассмотренная структура программы позволяет организовать счетчик от 1 до 255 циклов. При необходимости получения большого числа циклов для организации счетчика следует использовать регистровые пары (например, В и С). Загрузка такой пары осуществляется с помощью команды LXI B, а вместо команды DCR В необходимо использовать команду DCX B (декремент регистровой пары).

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.