IRET - команда возврата после прерывания




По отношению к прерываниям команда IRET (interrupt return - воз­врат после обработки прерывания) играет ту же роль, что и команда RET для вызовов процедур. Она "откатывает" всю работу исходной операции и заставляет микропроцессор 8086 аккуратно выполнить возврат к основной программе. По этой причине команда IRET должна быть последней, при исполнении микропроцес­сором 8086 программы обработки прерывания.

Команда IRET извлекает из стека три 16-битовых значения и загружает их в указатель команд IP, регистр сегмента команд CS и регистр флагов соответствен­но.

 

4. Ввод, трансляция и исполнение программы.

 

4.1 Разработка программы на языке Ассемблере.

 

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

При создании программы для ЭВМ, естественным побуждением является желание начать вводить команды программы от первой до последней. Этот метод пригоден при создании коротких программ опытными разработчиками, но и в этом случае возможно появление ошибок. Для исключения ошибок и ускорения разработчики программ пользуются методом разработки “сверху вниз”.

Это означает, что в самом начале составляется набросок алгоритма программы в виде текста или символов блок- схемы в котором описаны действия программы с комментариями. Это первый и основной этап, затем пишутся команды программы и вводятся в ЭВМ с помощью Редактора.

Лучше всего сначала ввести комментарии на обычном языке с описанием предполагаемых действий, а затем вставить между ними соответствующие команды. Это второй этап разработки программы, и на третьем этапе оттранслируйте программу с помощью ассемблера или его разновидностью, например MASM или TASM, если ассемблер обнаружит ошибки, исправьте их редактором, сохраните заново программу и оттранслируйте её заново. Исправление ошибок, сохранение и трансляцию программы повторяем до тех пор пока не получим из исходного программного файла, с расширением ASM, объектный файл, с расширением OBJ.

Затем с помощью загрузчика LINK или TLINK преобразуйте программу в исполнительный модуль с расширением EXE. Это будет четвертый этап.

На пятом этапе можно исполнять программу и проверять результат ее выполнения. Если результат не соответствует ожидаемому, необходимо найти ошибки, то есть отладить программу. Обычно это выполняется с помощью интерактивного отладчика CV (Code Veiw- п.7).

После тестирования своей программы разработчик может инициировать ее выполнение командной строкой MS- DOS.

При программировании на языке ассемблера потребуется ряд программ, а именно:

1. Текстовый редактор для создания исходного файла на языке ассемблера.

2. Макроассемблер Microsoft Masm, для ассемблирования исходного файла.

3. Объектный компоновщик Link (Object Linker) Microsoft, для форматирования программы из объектного файла, которую компоновщик преобразует в выполняемый (имеющий расширение.EXE) выходной файл.

4. Символьный отладчик CV, для вызова и исполнения программы.

4.2 Ваша первая программа на Ассемблере.

 

В программировании первой программой традиционно является программа, выводящая на экран сообщение "Привет!".

Войдите в текстовый редактор (например в редактор FAR, нажав SHIFT+ F4), создайте файл под названием HELLO.ASM. Имя может быть любое, но расширение непременно ASM, которое указывает, что исходная программа на языке ассемблера, и введите следующие строки программы.

.MODEL SMALL; Задаем малую модель программы из двух сегментов.

.STACK 100h; Задаем Стэк размером 100Н.

.DATA; Задаем сегмент данных.

Message DB 'Привет!',13,10,'$'; Содержимое сегмента данных.

.CODE; Задаем сегмент команд.

begin: mov ax,@Data; Запишем адрес начала сегмента данных в регистр АХ

mov ds,ax; Перешлём этот адрес в сегментный регистр DS.

mov ah,9; функция DOS вывода строки символов на экран.

Lea dx, Message; Перешлём адрес сообщения в регистр DX.

int 21h; вывести "Привет!" на экран

mov ah,4ch; функция DOS завершения программы

int 21h; завершить программу

END begin; begin – точка входа в программу.

 

4.2.1 Ассемблирование вашей первой программы

Нажмите F2, для сохранения файла HELLO.ASM. Затем необходимо преобразовать программу в выполняемый вид., это потребует двух дополнительных шагов - ассемблирования и компоновки.

На этапе ассемблирования ваш исходный код (текст программы),

превращается в промежуточную форму, которая называется объектным модулем, а на этапе компоновки один или несколько модулей комбинируются в выполняемую программу. Для ассемблирования файла HELLO.ASM занесите в командную строку команду “MASM hello” и нажмите клавишу Enter четыре (4) раза. Если вы не задали другое имя, файл HELLO.ASM будет ассемблирован в файл HELLO.OBJ. (Заметим, что расширение имени файла писать не требуется. Макро Ассемблер подразумевает в этом случае, что файл имеет расширение.ASM.) На экране вы можете увидеть следующее:

Microsoft (R) Macro Assembler Version 5.10

Copyright (C) Microsoft Corp 1981, 1988. All rights reserved. Inc.

49726 + 399215 Bytes symbol space free

0 Warning Errors

0 Severe Errors

То есть Ваша программа успешно ассемблирована, допустимых ошибок 0 и фатальных ошибок 0. Если вы введете файл HELLO.ASM в точности так, как показано, то вы не получите никаких предупреждающих сообщений или сообщений об ошибках. Если вы получаете такие сообщения, они появляются на экране с номерами, указывающими строки, где содержатся ошибки. При получении сообщений об ошибках проверьте исходный код (текст) программы, исправьте обнаруженные ошибки, убедитесь, что он выглядит точно так, как исходный код в нашем примере, а затем снова ассемблируйте программу.

4.2.2 Компоновка программы

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

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

LINK HELLO

Здесь опять не требуется вводить расширение имени файла. Компоновщик LINK по умолчанию предполагает, что этим расширением является расширение.OBJ. Когда компоновка завершится, компоновщик автоматически присвоит файлу с расширением.EXE имя, совпадающее с именем вашего объектного файла (если вы не определили другое имя). При успешной компоновке на экране появляется сообщение:

Microsoft (R) Overlay Linker Version 3.64

Copyright (C) Microsoft Corp 1983-1988. All rights reserved.

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

4.2.3 Запуск вашей первой программы

Теперь программу можно запустить на выполнение. Для этого в ответ на подсказку операционной системы DOS введите “ hello”. На экран выведется сообщение: Привет! Та как Ваша программа небольшая, то сообщение очень быстро промелькнет на экране, и Вы можете его не заметить. Для того чтобы остановить изображение на экране, нажмите клавиши Ctrl + O. Тогда результаты выполнения Вашей программы вновь появятся на экране. Чтобы вернуться в исходное состояние, вновь нажмите Ctrl + O.

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

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

1. Создание алгоритма программы.

2. Написание исходного текста программы, желательно в редакторе FARа, с расширением ASM и именем по выбору.

3. Сохранение исходного текста (F2).

4. Транслирование исходного текста программы в объектный модуль, с помощью трансляторов MASM или TASM. Для чего занесите в командную строку команду - MASM имя программы.ASM и нажмите четыре (4) раза ENTER.

5. При выводе строк с ошибками в синтаксисе команд, исправьте ошибки и повторите пункты 3, 4.

6. При получении объектного кода программы, (Вы это увидите по появлению файла с именем Вашей программы и расширением.OBJ.), занесите в командную строку команду - Link имя программы, и нажмите четыре раза (4) ENTER.

7. В результате Вы получите исполняемый модуль программы. Вы это увидите по появлению файла с именем Вашей программы и расширением.EXE.

8. Выделив этот файл и нажав ENTER, Вы заставите процессор исполнить программу.

9. Повторив нажатие, Вы вернетесь в исходное состояние.

10. Сообщения об видах ошибок Вы можете посмотреть в таблице 5 и таблице 6.

11. Результат выполнения программы Вы увидите на экране, если нажмете одновременно клавиши Ctrl и О.

5 Примеры написания программ на языке ассемблера.

 

5.1 Умножение двойных слов.

 

TITLE EXDWMUL - Умножение двойных слов

CODESG SEGMENT PARA 'Code'



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: