Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Готовимся к ГИА по русскому языку 6 страница




 

Команды DI, EI

Данные команды являются командами управления прерываниями. По команде DI (Disable Interrupt) МП игнорирует запросы прерывания до тех пор, пока не поступит команда EI (Enable Interrupt).

 

 

СИНТАКСИС И ПОДПРОГРАММЫ

Одним из языков написания программ для 8-разрядных процессоров является машинно-ориентированный язык Ассемблер, который позволяет писать текст программы без использования двоичных чисел, заменяя их мнемокодами команд, и в то же время обеспечивает оптимальную по объему программу. Так как язык Ассемблера ориентирован на конкретную микро-ЭВМ, использующую конкретный тип МП, то разные ЭВМ отличны друг от друга и языки ассемблера для них будут различны. Эти различия относятся к терминам, используемым в командах, и способах адресации операндов. Язык Ассемблера должен соответствовать специфическим особенностям МП. Одно- и двухадресные ЭВМ имеют большую разницу.

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

 

Синтаксис

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

 

МЕТКА ОПЕРАЦИЯ ОПЕРАНД КОММЕНТАРИЙ

 

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

В поле операция записывается код операции, который принят в данном ассемблере. Это аббревиатура полного названия операции.

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

Написанная программа может быть введена в память ЭВМ с пульта управления. В этом случае программист определяет адреса самостоятельно. Затем вводит адреса и команды в двоичным кодах с помощью переключателей. Поэтому необходимо все коды перевести в двоичные числа.

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

В поле комментария указываются пояснения команды. Это поле используется для удобства чтения программы и полностью игнорируется ассемблером в процессе трансляции.

При наборе команд ассемблера следует придерживаться следующих правил.

Для каждой команды должна резервироваться одна строчка. Необходимо нажимать на клавишу ВВОД (ENTER) в конце каждой команды.

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

Если метка отсутствует, то первое поле остается пустым.

В некоторых ассемблерах после метки ставится двоеточие. Метка не должна начинаться с цифры, не должна быть такой же, как команда ассемблера.

Поле комментария должно начинаться с точки с запятой.

 

Директивы ассемблера

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

Директива ORG (origin – начало) задает ассемблеру адрес ячейки памяти для первой команды транслируемой программы. Директива ORG 0400H обеспечивает размещение по адресу 040016 первой команды программы.

Директива EQU (equate – приравнять) используется, когда при написании программы некоторому символическому имени ставится в соответствие определенный операнд.

Директива END – конец используется для указания того, что исходная программа закончилась.

 

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

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

Команда вызова подпрограммы CALL состоит из 3 байт: 1 байт – для кода операции и 2 байта для указания адреса первой команды подпрограммы. Этот адрес задается символическим именем. Кроме этого, по команде выполняются действия, необходимые для возвращения в основную программу после выполнения подпрограммы:
- в счетчике команд фиксируется адрес команды в основной программе, которая следует за командой вызова;
- содержимое счетчика команд (адрес возврата) загружается в стек; содержимое указателя стека модифицируется;
- счетчик команд загружается адрес, задаваемый командой вызова.

После этого начинается выполнение подпрограммы.

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

- счетчик команд получает из стека адрес команды в основной программе, следующей за командой вызова;
- содержимое указателя стека соответственно модифицируется.

 

Команды управления стеком

Иногда при выполнении подпрограмм требуется использовать один или несколько регистров общего назначения МП. Но в этих регистрах может находиться информация, которая потребуется далее основной программе. Для сохранения этих данных их необходимо поместить в стек до начала выполнения подпрограммы. Для этого применяется команда PUSH (поместить в стек). Команда POP (вытолкнуть из стека) используется для возврата данных в регистры после выполнения подпрограммы. Команды PUSH и POP всегда оперируют с парой регистров BC, DE, HL; аккумулятором и регистром признаков.

Содержимое аккумулятора и регистра признаков вместе образуют так называемой слово состояния программы PSW (Program Status Word).

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

По команде ПОМЕСТИТЬ В СТЕК выполняются следующие действия:
- содержимое указателя стека сначала декрементируется;
- первые 8 бит загружаются в стек;
- содержимое указателя стека вновь декрементируется;
- последующие 8 бит загружаются в стек;

По команде ВЫТОЛКНУТЬ ИЗ СТЕКА выполняются обратные действия. Сначала второй байт выводится из стека в МП и содержимое указателя стека инкрементируется. Затем первый байт передается из стека в МП, и указатель стека вновь инкрементируется.

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


 



Литература.

1. Микр-ЭВМ /Пер.с англ. под ред. А.Дирксена.-М.:Энергоиздат, 1982. 328с., ил.

2. Гибсон Г., Лю Ю-Ч. Аппаратные и программные средства микро-ЭВМ.-М.:
Финансы и статистика, 1983.-255 с.,ил.

3. Предко М. Справочник по PIC-микроконтроллерам: Пер. с англ.-М.: ДМК Пресс, 2004-512 с.:ил.

4. Однокристальные 8-разрядные FLASH CMOS микроконтроллеры компании Microchip Technology Incorporated. –техническая документация на микроконтроллеры PIC16F873, PIC16F874, PIC16F876, PIC16F877 –М.:
ООО "Микро-Чип", 2002 г.-170 с.,ил.

5. В.Л.Григорьев. Микропроцессор i486. Архитектура и программирование (в 4-х книгах).-М., ГРАНАЛ, 1993.-с.346, ил.87.

6. Руководство по архитектуре IBM PC AT/Ж.К.Голенкова, А.В.Заболоцкий, М.Л.Марсахин и др.; Под общ.ред. М.Л.Марсахина.-Мн.:ООО"Консул", 1992.-949 с.:ил.

 

(пособие для учащихся)

Министерство образования и науки Республики Татарстан

ГАОУ ДПО «Институт развития образования Республики Татарстан»




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 326; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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