Читайте также: |
|
FASM использование подпрограмм
Оглавление
1. Понятие подпрограммы.. 3
2. Ближний вызов подпрограммы.. 3
3. Дальний вызов подпрограммы.. 4
4. Передача исходных данных в подпрограмму. 6
4.1. Извлечение кодов при ближнем вызове. 7
4.2. Извлечение кодов при дальнем вызове. 8
5. Практические задания. 9
6. Задания для самостоятельной работы.. 10
Понятие подпрограммы
Подпрограмма в ассемблере это блок программного кода, к которому можно обращаться из различных точек программы. Подпрограммы создаются либо для упорядочивания структуры программы, либо для автоматизации часто выполняемой последовательности действий с различными исходными данными. Структура подпрограммы:
MyProc:;Имя – адрес подпрограммы
;команды
ret;команда завершения подпрограммы
Ближний вызов подпрограммы
Вызов подпрограммы выполняется с помощью команды:
сall MyProc. Если подпрограмма и команда вызова находятся в одном сегменте, то такой вызов называется ближним near.
Рис.2.1. Ближний вызов
Пример. Подпрограмма вывода символа по его коду на консоль.
use16
org 256
;-------------------
call getSym;Вызов подпрограммы
;----------------------------
mov AH,08;Ждать нажатия клавиши
int 21h
mov AX,4C00h;Выход в ОС
int 21h
;---------------
sym db 176;Код символа
;==================
getSym:;Подпрограмма вывода
mov ah,02h;Функция ОС
mov dl,[sym];Получить код
int 21h;Вывести
ret;Выйти из подпрограммы
При вызове процедуры в стек заносится слово - содержимое регистра IP (адрес следующей команды), и в него загружается смещение к началу подпрограммы. При выполнении команды ret из стека восстанавливается содержимое регистра IP и программа продолжается с команды, следующей за командой call.
Рис.2.2. Стек после выполнения команды call
Дата добавления: 2015-07-26; просмотров: 109 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
V. Основные индексы общности для видовых списков. | | | Дальний вызов подпрограммы |