Механизмы организации подпрограмм и прерываний

Содержание

Слайд 2

Преимущества использования подпрограмм и модульного подхода

1. Появляется возможность выделить в программе одинаковые

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

Слайд 3

Вызов подпрограммы


RAM

Основная
(главная)
программа

подпрограмма

Точка вызова(адрес вызова)

Точка возврата
(адрес возврата)(как правило,
следующая за командой
вызова команда)

Точка входа

Вызов подпрограммы RAM Основная (главная) программа подпрограмма Точка вызова(адрес вызова) Точка возврата

Слайд 4

Механизм передачи и возврата управления с использованием стека


Call SUB

RET

IP

CALL SUB

стек

подпрограмма

sub

1. IP

Механизм передачи и возврата управления с использованием стека Call SUB RET IP
(SP)
2. SUB->IP

IP

1. (SP) IP

ret

1

2

стек

Слайд 5

Механизм передачи и возврата управления с использованием стека и регистра связи


Call

Механизм передачи и возврата управления с использованием стека и регистра связи Call
SUB

RET

IP

CALL SUB

стек

подпрограмма

sub

1. (Rlink) (SP)
2. (IP)-> Rlink
3. SUB->IP

Rlink

2

1

3

IP

Rlink

1

2

1. Rlink->IP
2. (SP) (Rlink)

Слайд 6

Требования к подпрограмме при передаче управления

1. Подпрограмма может в ходе своей работы

Требования к подпрограмме при передаче управления 1. Подпрограмма может в ходе своей
использовать регистры процессора. Для того, чтобы не испортить значения регистров основной программы, подпрограмма должна начинать свою работу с сохранения содержимого используемых ей регистров процессора, а перед возвратом в основную программу обеспечивать восстановление их содержимого. Cодержимое регистров может сохраняться либо в стеке, либо в области памяти, доступной подпрограмме.
2. Перед возвратом управления из подпрограммы в основную программу стек должен быть сбалансирован, т.е. при выходе из подпрограммы он должен иметь то же состояние, что и при входе в подпрограмму(по крайней мере, его вершина).

Слайд 7

Передача параметров подпрограммам

При рассмотрении внутренних механизмов передачи параметров можно выделить несколько способов

Передача параметров подпрограммам При рассмотрении внутренних механизмов передачи параметров можно выделить несколько
передачи, а именно:
1. передача параметров с использованием общей области памяти;
2. передача параметров через регистры процессора;
3. передача параметров через стек;
4. передача параметров комбинированными способами, в том числе через использование таблицы адресов параметров.

Слайд 8

передача параметров с использованием общей области памяти


Главная программа

подпрограмма

Общая область памяти

значение параметра

передача параметров с использованием общей области памяти Главная программа подпрограмма Общая область
a

значение параметра b

значение параметра с

stor a,A

load a,A

A,B,C – глобальные переменные

достоинства: простота и
“прозрачность” организации
недостатки: “жесткая” привязка к
структуре общей области

Слайд 9

Передача параметров через регистры процессора


Главная программа

подпрограмма

РОН

достоинства: простота и скорость
доступа
недостаток: ограниченное
количество

Передача параметров через регистры процессора Главная программа подпрограмма РОН достоинства: простота и
регистров процессора
стандарт де-факто для функций

Слайд 10

Передача параметров через стек


Главная программа

подпрограмма

Load a,ap
Push a
Load a,bp
Push a
Call subr

Адрес возврата

Параметр

Передача параметров через стек Главная программа подпрограмма Load a,ap Push a Load
bp

Параметр ap

SP

Pop a
Stor a,retaddr
Pop a
Stor a,p1
Pop a
Stor a,p2
. . . . . . . . . .
Load a,retaddr
Push a
ret

или

Load a,2(sp)
…......
Load a,3(sp)
…......

Стандартный метод
Передачи параметров

Слайд 11

Комбинированные методы (таблица адресов параметров)


Главная программа

подпрограмма

Таблица адресов

Адрес параметра 1

Адрес параметра 2

Адрес

Комбинированные методы (таблица адресов параметров) Главная программа подпрограмма Таблица адресов Адрес параметра
параметра 3

РОН

Или стек

Адрес таблицы адресов

Адрес таблицы адресов

Адрес возврата

Доступ в п/п
Load a,1(a) ; в Rа адрес пар 2
Load a,0(a) ; в Rа-значение пар2

Доступ в п/п
Load a,2(sp) ; в Rа адрес табл.
Load a,1(a) ; в Rа-адр.пар.2
Load a,0(a) ; в Ra-пар-р 2

достоинства: произвольное число
параметров, переменное число параметров
недостаток: косвенная адресация – долго
работает

Слайд 12

Прерывания


Прерывание - это временное прекращение выполнения процессором последовательности команд одной программы

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

прерывания

аппаратные

программные

внешние

внутренние

маскируемые

немаскируемые

Слайд 13

Внешние прерывания для организации ввода/вывода







Регистр состояния

Регистр

Внешние прерывания для организации ввода/вывода Регистр состояния Регистр данных CPU RAM Общая
данных

CPU

RAM

Общая шина

Контроллер
Периферийного
устройства

PIC

IRQ 0

запрос

ответ

Регистр команд

IRQ1

IRQ2

IRQ3

IRQ4

IRQ5

IRQ6

IRQ7

INT

INTA

Базовые регистры PIC:
IRR – запроса прерывания
ISR – обслуживания прер.
IMR- маскирования прер.
Развитие: APIC, MSI

IRR

ISR

IMR

Слайд 14

Структура подсистемы прерываний в SMP-системах


CPU 1

CPU2

Local APIC

Local APIC

I/O APIC

. . .

Структура подсистемы прерываний в SMP-системах CPU 1 CPU2 Local APIC Local APIC

Слайд 15

Обработка прерывания процессором


Адрес ISR 1

Адрес ISR 2

Адрес ISR 3

Адрес ISR N

RAM

Обработка прерывания процессором Адрес ISR 1 Адрес ISR 2 Адрес ISR 3
ROM

ISR 2

ISR1

ISR N

ISR 3

1. PC (SP) , F (SP)
2. по коду прерывания
вычисляется вектор прерывания, содержащий
aдрес ISR(interrupt service routine)
3. Адрес ISR → PC :
Начинает работать ISR
Перед завершением
обработки прерывания при
необходимости
“сбрасывается” бит
обработки в PIC
Выход из обработки – IRET :
(SP) F , (SP) PC

Слайд 16

Немаскируемые прерывания (NMI)

Аппаратные прерывания, немаскируемые
обычным способом, через регистр маски
контроллера прерываний.
Обрабатываются всегда, вне

Немаскируемые прерывания (NMI) Аппаратные прерывания, немаскируемые обычным способом, через регистр маски контроллера
зависимости
от состояния запрета обработки прерываний.
Служат для сигнализации неисправимых
аппаратных сбоев или для целей отладки

Слайд 17

Внутренние аппаратные прерывания

Сигнализируют о нарушении нормального хода
вычислительного процесса;
Немаскируются;
Примеры:
деление на 0;
переполнение стека;
нарушение защиты

Внутренние аппаратные прерывания Сигнализируют о нарушении нормального хода вычислительного процесса; Немаскируются; Примеры:
памяти;
недопустимая инструкция;
отсутствие страницы в памяти;
Имя файла: Механизмы-организации-подпрограмм-и-прерываний-.pptx
Количество просмотров: 262
Количество скачиваний: 5