- •Краткий конспект лекций по дисциплине Микропроцессорная техника
- •3.1. Цифровая информация
- •2) Перевод целого числа из любой системы в десятичную
- •3.2 Структура и принцип построения эвм
- •3.3 Микропроцессоры
- •3.4 Устройства памяти
- •3.5 Алгоритм работы микропроцессорной системы
- •1) Команды перемещения данных
- •2) Команды преобразования данных
- •3) Команда передачи управления
- •3.6 Микропроцессор кр580вм80а
- •3.7 Интерфейсы
- •Ethernet - 10 Мбит/с; Быстрый (Fast) Ethernet - 100 Мбит/с; Гигабитный (Gigabit) Ethernet - 1 Гбит/с; 10-гигабитный Ethernet
- •3.8 Микроконтроллеры
- •3.9 Языки программирования
- •Оператор_1 (группа операторов)
- •Оператор_2 (группа операторов)
- •Оператор (группа операторов)
- •Тело цикла
- •Тело цикла
- •3.10 Применение мс в электротехники
3.9 Языки программирования
Назначение языков программирования
Языки программирования предназначены для связи человека с микропроцессорной системой. Эта связь заключается в передаче от человека в систему набор команд (инструкций), которые необходимо выполнить. Упорядоченный набор таких команд называется программа.
Т.о. языки программирования предназначены для написания компьютерных программ, содержащих инструкции по выполнению определённого процесса и организации управления какими-либо устройствами.
Конструкция языков программирования
Языки программирования рассчитаны на использование ASCII, т. е. доступность всех графических символов ASCII является необходимым и достаточным условием для записи любых конструкций языка.
Программу на языке записывают в текстовом редакторе. Т.к. процессор понимает только цифровой двоичный код, написанные команды преобразуются в машинный код с помощью программы – переводчика, называемого транслятор. Различают два вида трансляторов:
1) интерпретаторы – обрабатывают текст непосредственно во время написания программы, т.е. каждую строку по отдельности;
2) компиляторы – преобразуют весь текст программы одновременно.
Работа программы состоит в обработке данных – констант и переменных. Действия над константами и переменными определяют операторы. Оператор является инструкцией языка.
Программа представляет собой последовательность операторов, записанных друг за другом. По своей структуре программы могут быть линейными, циклическими и ветвящимися.
Уровни языков программирования
Различают уровни (по отношению к естественному, человеческому) языков программирования:
- низкого уровня – машинные языки;
- языки ассемблера – близки к машинному;
- языки высокого уровня – приближены к человеку.
Пользование машинным языком, единственно понятным микропроцессору, вызывает трудности, связанные с необходимостью записи громоздких, трудно запоминаемых двоичных кодовых комбинаций, со сложностью поиска ошибок в составленной программе, представляющую собой последовательность цифровых кодов, с трудностью внесения изменений в составленную программу.
Наряду с указанными недостатками язык кодовых комбинаций имеет и достоинства. Программа на этом языке оказывается наиболее эффективной, она занимает минимальный объем памяти и быстрее исполняется.
Пример: Для представления машинного языка используем DOS программу DEBUG — специальная программа, входящая в состав утилит MS-DOS, для ввода и пошагового выполнения программ, написанных на машинном языке или с помощью команд ассемблера (рис. 3.16).
Рисунок 3.16 – Просмотр содержимого ячеек памяти в окне программы DEBUG
Текст программы, представленной в шестнадцатеричном формате:
-
Команда
Назначение
Мнемоника
B8 23 01
Переслать шест. значение 0123 в AX
MOV AX,0123
05 25 00
Прибавить шест. значение 0025 к AX
ADD AX,0025
8B D8
Переслать содержимое AX в BX
MOV BX,AX
03 D8
Прибавить содержимое AX к BX
ADD BX,AX
8B CB
Переслать содержимое BX в CX
MOV CX,BX
2B C8
Вычесть содержимое AX из AX (очистка AX)
SUB CX,AX
90
Нет операции
Трудности программирования уменьшаются при использовании языка ассемблера. В этом языке вместо кодовых комбинаций применяется мнемоническая форма записи операций (мнемоники), выполняемых в микропроцессоре. Такой мнемонической записью (в виде сочетания букв, взятых из соответствующих английских слов: MOV – перемещение, ADD – сложение, SUBB – вычитание) представляют вид выполняемой операции, операнды и адреса. Каждой команде на языке ассемблера соответствует команда на языке кодовых комбинаций.
Язык ассемблера упрощает запись команд, облегчает поиск в ней ошибок, обеспечивает лучший обзор программы и простоту внесения исправлений в программу.
Перед исполнением программа должна быть переведена с языка ассемблера на язык кодовых комбинаций и в таком виде помещена в память микропроцессорной системы. Этот перевод осуществляется на компьютере с помощью программы трансляции, называемой ассемблером.
Язык ассемблера (так же, как и язык кодовых комбинаций) индивидуален для каждого типа микропроцессора и микроконтроллера.
Следующий уровень языка программирования — язык высокого уровня. Языки высокого уровня близки к обычному математическому языку, описывающему процесс решения задачи, поэтому они легко усваиваются. Кроме того, они обеспечивают большую компактность программы (сложные вычислительные процессы представляются короткими записями), что улучшает обзор программы и выявление в ней ошибок.
Простейшим языком программирования высокого уровня является BASIC («Beginner's All-purpose Symbolic Instruction Code» - универсальный код символических инструкций для начинающих), созданный в 1964 году и до сих пор широко применяемый.
Для программирования в машинных кодах и кодах Ассемблера необходимо досконально знать архитектуру процессора (микроконтроллера), набор команд, владеть хотя бы основами программирования. Для написания программ на языке высокого уровня достаточно знать основы программирования. Поэтому языки Ассемблера постепенно вытесняются языками высокого уровня: например ассемблер для микроконтроллеров заменяется языком Си.
Для дальнейшей популяризации аппаратных средств и программных продуктов разработаны графические языки программирования, в которых необходимый алгоритм работы реализуется с помощью типовых блоков и связей между ними. Такая тенденция наблюдалась в интерфейсах операционных системах, который был командный (для работы необходимо вводить команды, причем знать какие), а стал графически — нажал на картинку и работа «пошла».
Язык программирования BASIC
С основными особенностями языков программирования высокого уровня познакомимся на примере одного из простейших языков – BASIC.
Работа программы состоит в обработке данных – констант и переменных.
Константы используются непосредственно — без применения дополнительных обозначений. Для обозначения переменной в программе используется идентификатор переменной – имя.
Типы данных – числовые и строковые (символьные)
Имя переменной без дополнительных обозначений воспринимается как числовой тип. Для определения строковой переменной используется символ $.
Понятие оператора
Действия над константами и переменными определяют операторы. Оператор является инструкцией языка.
Программа представляет собой последовательность операторов, записанных друг за другом. Каждый следующий оператор начинается с новой строки.
Операторы могут быть простыми и составными. Простые операторы занимают одну строку. Составные операторы занимают несколько строк. Составной оператор обычно состоит из открывающего оператора, тела составного оператора (которое может содержать любые операторы) и закрывающего оператора.
Оператор присваивания
Используется для определения (изменения) значения переменной.
Определяется знаком присваивания (=), слева от которого располагается идентификатор переменной, а справа некоторое выражение.
А = 10
В правой части оператора присваивания может стоять не только отдельная константа, но и произвольное выражение, содержащее переменные, константы и знаки операций. Основные знаки арифметических операций: сложение (+), вычитание (–), умножение(*) и деление (/).
А = 2*3 + B/C – З*(D+2)
Не следует путать оператор присваивания и знак равенства
А = А + 1
Вывод результатов на экран
В ходе работы программы все данные обрабатываются в ячейках оперативной памяти, где их увидеть невозможно. Для вывода на экран используется оператор PRINT.
После ключевого слова PRINT идет список выводимых переменных и выражений. Если в операторе стоит переменная, то печатается ее значение, а если выражение, то его результат.
PRINT A PRINT A-B*C PRINT A$+B$
Ввод данных
В ходе работы программы может возникнуть необходимость ввода данных от пользователя. Для ввода данных с клавиатуры используется оператор INPUT
Сразу после ключевого слова INPUT может идти строковая константа — приглашение, поясняющее пользователю, что от него ожидается ввод информации. Приглашение может отделяться от списка переменных запятой или точкой с запятой. В последнем случае в конец приглашения автоматически добавляется вопросительный знак (?).
Если приглашение опущено, в качестве него используется знак вопроса.
После приглашения следует переменная, которой должно быть присвоено значение, принятое с клавиатуры.
При выполнении оператора INPUT программа приостанавливает свою работу, ожидая ввода данных пользователем. Ввод каждого значения завершают нажатием клавиши ENTER, после чего работа программы возобновляется.
Пример 1
Задание: Напишите программу, при запуске которой Вам предлагалось бы ввести ваше имя и возраст, и после того, как вы ввели имя и возраст программа должна была бы вывести имя и возраст на экран.
Текст программы: Результат выполнения:
Условный оператор
Позволяет определять порядок выполнения программы в зависимости от определенных условий.
IF (если) логическое условие_1 THEN (тогда)
