русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ


Дата добавления: 2014-11-28; просмотров: 588; Нарушение авторских прав


На своем рабочем уровне МП реагирует на список операций, называемых машинной программой. На рис. 1.1,а приведено содержимое памяти, являющееся программой на машинном языке. Эта программа начинается с адреса 2000Н с содержимым 00111110В и заканчивается адресом 2006H с содержимым 01110110В Человеку практически невозможно понять программу, представленную в такой форме.

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

В более приемлемой форме рассматриваемая программа могла бы выглядеть так:

1.загрузить двоичное число (10110100) в аккумулятор;

2.инвертировать каждый двоичный бит содержимого аккумулятора;

3.поместить результаты инверсии в ячейку памяти данных 2100Н.

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

Обычно фраза или заданная величина на ассемблере будет соответствовать выражению длиной от одного до трех байтов машинного языка. Суть и процедура ассемблирования показаны на рис. 1.2, где вторая команда программы представлена единственной мнемоникой из трех букв СМА (инвертировать содержимое аккумулятора). Сначала три буквы переведены в их эквиваленты в коде АSCII, затем три кода ASCII преобразованы в определенный порядок специальной программой Ассемблера, которая выдает уже код команды инверсии содержимого аккумулятора на машинном языке, т.е. 00101111В в данном случае или 2FH (в Н-коде). Таким образом, мнемоника преобразована в один единственный байт машинного языка.



Программа на языке Ассемблер, записанная человеком, может быть представлена в виде следующей таблицы (в двоичном или в шестнадцатеричном машинном коде):

Адрес Н-код Двоичное содержимое   Адрес Н-код Шестнадцат. содержимое Н-код  
- начало программы - начало программы
  ВЧ  
  2F  
   
   
   
- конец программы - конец программы
       

Обычным является деление строк на четыре поля: метка, мнемоника, операнд и комментарий.

 

Мнемоника Код Транслятор Ассемблера Машинный

команды ASCII в машинный код код

 
 


С

М

А

 

Рис. 1.2. Трансляция мнемоники Ассемблера в машинный код команды

 

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

После того как программа на языке Ассемблер составлена (табл. 1.1), производится перевод мнемоник и операндов в машинные коды, и списку команд назначаются соответствующие ячейки памяти.

Таблица 1.1

Метка Мнемоника Операнд Комментарий
  MVI A, ВЧН Загрузить в аккумулятор данные ВЧН
  СМА   Инвертировать содержимое аккумулятора
  STA 2100Н Переслать содержимое аккумулятора в память по адресу 2100Н
  HLT   Остановить МП

 

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

 

Таблица 1.2

Адрес Н – код Метка Мнемоника Операнд Машинный код Комментарий
  MVI А, ВЧН 3Е ВЧ Загрузить в аккумулятор данные ВЧН
  СМА   2F Инвертировать содержимое аккумулятора
  STA 2100Н Переслать содержимое аккумулятора в память по адресу 2100Н
  HLT   Остановить МП

 

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

Таблица 1.3

Адрес Н-код Метка Мнемоника Операнд Машинный код Комментарий
  MVI А, ВЧН 3Е ВЧ  
  СМА   2F  
  STA 2100H 32 00 21  
  HLT    

 

Программирование на языке Ассемблер является способом "очеловечивания" действий МП. Языки высокого уровня (Бейсик, Паскаль, Фортран и т.д.) при их использовании делают программирование более удобным.

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

Для программиста МП-система, построенная на базе МП КР580ВМ80А, представлена составом команд, памятью, регистрами общего назначения, счетчиком команд, портами ввода-вывода, флажками (триггерами регистра признаков), указателем стека и стеком. Все эти элементы, за исключением памяти и портов ввода-вывода, составляют часть МП.

В дальнейшем мы будем использовать состав команд МП КР580ВН80А, приведенный в табл.5.1 и 5.2[1].



<== предыдущая лекция | следующая лекция ==>
ВВЕДЕНИЕ | Разветвлений


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.493 сек.