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

Ближний вызов подпрограммы

Читайте также:
  1. II. Вызов кредиторов наследодателя
  2. Анализ рисков реализации подпрограммы и описание мер управления рисками.
  3. Бездуховность бросает вызов Русскому самосознанию.
  4. Бросивший вызов силам деградации и смерти
  5. Вызов меняющимся временам
  6. Вызов на бой

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. Основные индексы общности для видовых списков.| Дальний вызов подпрограммы

mybiblioteka.su - 2015-2024 год. (0.006 сек.)