Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. Визуальное объектно-ориентированное программирование
  2. Визуальное программирование. Разработки форм пользовательского интерфейса.
  3. Вопрос 52. Объектно - ориентированное программирование.
  4. Линейное программирование
  5. Мультипрограммирование
  6. Нелинейное программирование.
  7. Общие сведения о микропроцессорах
  8. Объектно-ориентированное программирование.
  9. Объектно-ориентированное программирование. Этапы создания исполняемой программы.
  10. Прогнозирование и программирование в образовании.

Для выполнения набора определенных операций в память МП

Таблица 1
заносится программа, называемая машинной или программой на машинном языке.

Смещение
Таблица 2
Коды команд

Коды
   
     
    С6
     
     
     
     

Рассмотрим простейшую программу сложения двух чисел 1 и 2 (табл. 1). При этом будем предполагать, что в рабочем сегменте она располагается со смещения 010016. Для человека очень сложно понять такую программу. Восприятие программы несколько упрощается, когда она представляется в шестнадцатиричном коде, как показано в табл. 1.

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

Та же программа, записанная на языке ассемблера с комментариями, может быть представлена в виде табл. 2

Смещение
Таблица 2
Мнемоника

Коментарий
  МОV AX,01 Загрузить в аккумулятор число 1
  ADD AX,02 Сложить число 2 с содержимым аккумулятора
  MOV 0107,AX Переслать содержимое аккумулятора в ячейку 0107

Таблица 2

 

 


 

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

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

Команды пересылки имеют мнемонику MOV. После кода команды необходимо указать, куда осуществляется пересылка и откуда. Пусть необходимо содержимое регистра ВХ переслать в регистр АХ. Тогда следует указать:

MOV AX, BX.

С помощью данной команды можно осуществить загрузку любого регистра общего назначения (в указанный регистр переслать заданное число). Если, например, необходимо записать в регистр ВХ число 20, то следует указать:

MOV ВХ, 20.

Данная команда позволяет записать число в память или считать его из памяти, если смещение ячейки в сегменте, к которой осуществляется обращение, размещено в регистре ВХ.

MOV AX, [BX] – переслать содержимое ячейки памяти, смещение которой задано в регистре ВХ, в аккумулятор.

Команды арифметического сложения имеют мнемонику ADD. После кода команды необходимо задать адреса операндов. В простейшем случае операнды могут находиться в РОН, причем первое число – в аккумуляторе АХ. Если второе число находится в регистре DX, то тогда команда на сложение этих чисел будет:

ADD AX, DX.

Данная команда позволяет увеличить содержимое одного из РОН на некоторое число, которое непосредственно указывается в команде. Пусть необходимо содержимое регистра ВХ увеличить на 2. Тогда команда запишется в виде:

ADD BX, 2.

Команды передачи управления используются для организации циклов в программе. Наиболее простой и чаще встречаемой является команда безусловного перехода JMP. По этой команде в указатель команд (программный счетчик) заносится число, следующее за кодом команды. Если при выполнении программы встречается команда

JMP 0100,

то содержимое очереди команд обнуляется и следующей будет выполняться команда, записанная по адресу 0100 и далее по порядку.

Для организации циклов используется команда LOOP с указанием адреса. Если записано:

LOOP 0105,

то после декодирования в программный счетчик загружается число 0105 и начинается выполнение команд, расположенных между адресами 0105 и кодом LOOP, причем число повторений цикла определяется содержимым регистра СХ. С каждым повторением цикла содержимое СХ уменьшается на 1. При СХ =0 цикл заканчивается и выполняется команда, следующая за LOOP.

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


 

Адрес Мнемоника Комментарии
    010b 010e   MOV AX, 0 MOV BX, 0120 MOV CX, A MOV AX, [BX]     ADD BX, 2 LOOP 0109   JMP 0103 Обнулить содержимое регистра АХ. Загрузить в регистр ВХ адрес первого числа. Загрузить в регистр СХ количество чисел 10 (А). Переслать в регистр АХ содержимое ячейки памяти, адрес которой записан в регистре ВХ (первое число). Увеличить содержимое регистра ВХ на 2. Уменьшить содержимое регистра СХ на 1 и если СХ не равно 0, то перейти к выполнению команды по адресу 0109, если СХ =0, выполнить следующую команду. Перейти к выполнению команды по адресу 0103.

 

Таблица 3
смены будет определяться исходными данными в соответствии с заданием курсовой работы. Программа модели с комментариями приведена в табл. 3.

 

Несмотря на то, что язык ассемблера значительно удобнее, чем машинный, на нем все же трудно писать сложные программы. Для упрощения программирования разработаны языки высокого уровня (Бейсик, Паскаль и др.). Они разработаны на английском языке и не зависят от конструкции и типа микропроцессора. Одна команда на языке высокого уровня соответствует 20 - 30 машинным командам. Для перевода языков высокого уровня в машинный используются достаточно сложные трансляторы.




Дата добавления: 2015-02-16; просмотров: 27 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав