- •27. Языки программирования. Особенности объектного языка программирования. Использование символических имен при программирование.
- •28. Программирование с использованием абсолютных и символических адресов. Примеры.
- •29. Операции управления: метки, ветвления, проверки. Примеры программирования.
- •30. Структура цикла: начальная установка, обработка, изменение массива данных. Примеры использования цикла в программах.
- •31. Подпрограммы и процедуры. Виды подпрограммы. Вызов подпрограмм. Примеры.
- •32. Примеры программирования современных микропроцессоров.
- •33. Программирование ввода-вывода.
- •35. Примеры программирования ввода-вывода.
- •36. Регенерация динамической памяти.
- •37. Обмен данными. Программирования синхронного обмена данными.
- •38. Обмен данными. Программирования асинхронного обмена данными.
27. Языки программирования. Особенности объектного языка программирования. Использование символических имен при программирование.
Существует множество языков программирования. Различают:
Языки низкого и высокого уровня
Процедурно-ориентированные, объектно-ориентированные языки.
Эмпирические, функциональные языки.
Мнемонические языки и языки машинного кода
Иерархия языков программирования:
Машинные коды
Ассемблеры
Языки низкого уровня (С, Фортран, Паскаль, Бейсик, Ангол, Ада)
Языки высокого уровня (С++, Object Pascal, Java)
Для программирования микроконтроллеров используются языки Pascal, Basic, C, Ассеблер и другие.
Объектно-ориентированные языки программирования отличаются наличием особого элемента языка – объекта, экземпляра класса. Класс, являясь типом данных, объединяет данные и методы работы с ними. Основные особенности классов: инкапсуляция, наследование и полиморфизм. Первым языком, поддерживающим классы, является Simula. Развитие объектно-ориентированных языков программирования связанно с деятельностью шведского программиста Бьёрна Страуструпа, создателя языка С++.
При программировании часто используются символические имена. Они используются для обозначения команд, переменных и других конструкций языка.
Пример:
MOV A, B – команда на языке Ассемблера пересылки содержимого регистра В в А
Var N, M – объявление переменных N и M на языке Pascal
28. Программирование с использованием абсолютных и символических адресов. Примеры.
При программировании на языке Ассемблера часто используются как абсолютные так и символические адреса. При программировании на языка более высокого уровня абсолютные адреса используются крайне редко. Использование символических адресов позволяет повысить переносимость и надёжность кода.
Примеры использования абсолютных адресов:
sta 0900
Примеры использования символических адресов:
lxi D, 09e0
stax d
29. Операции управления: метки, ветвления, проверки. Примеры программирования.
Метка – конструкция языка, позволяющая организовывать непоследовательный переход к определённому участку кода. Пример использования меток:
label:add b
dcr c
jz end
jmp label
end (метки выделены жирным)
Ветвление спроверкой может быть организовано с использованием меток и операторов безусловного перехода. Пример:
Mov A, B
Sub C
Inr A
Dcr A
Jz var1
Jmp var2
var1: …
Jmp end
var2: …
Jmp end
end: …
30. Структура цикла: начальная установка, обработка, изменение массива данных. Примеры использования цикла в программах.
Цикл состоит из следующих частей: инициализации, условия выхода, тела, изменения счетчика.
Рассмотрим пример организации цикла на языке Ассемблера
mvi b, 04
mvi c, 02 – счетчик цикла
mvi a, 00
label:add b – тело цикла
dcr c – уменьшение счетчика
jz end – выход из цикла (условие)
jmp label - возврат
end: sta 0900 – точка выхода из цикла
rst1
Пример обработки массива данных длинной hAF (каждое число увеличивается на h0E)
lxi D, 09e0
mvi B, 0E
mvi c, AF – счетчик цикла
label: ldax d //
adc B //
stax d // – тело цикла
inx d //
dcr c – уменьшение счетчика
jz end – выход из цикла (условие)
jmp label - возврат
end: rst1:– точка выхода из цикла