Рабочие листы
к вашим урокам
Скачать
1 слайд
Организация подпрограмм
Подпрограмма-некоторый поименованный участок кода программы синтаксически оформленный так, что имеется возможность его вызова из любого места программы.
Назначение подпрограмм:
Премирование на более высоком уровне.
Уменьшение размеров программы.
2 слайд
Организация подпрограмм
С целью создания возможности оpганизации подпpогpамм в аpхитектуpу УМ вклюючены специальные сpедства:
- pегистp связи L;
- команда " Пеpеход к подпpогpамме " (jsub);
- команда " Возвpат из подпpогpаммы" (rsub);
- посылочные команды ldl и stl.
3 слайд
Организация подпрограмм
Проблемы при работе с подпрограммами:
Связь по управлению
Связь по данным
4 слайд
Связь по управлению
Пример иллюстрирует организацию обращения к подпрограмме
program Ex41;
var v: Integer;
procedure inc;
begin v:=v+1 end; { inc }
begin v:=1; inc; inc end.
5 слайд
Связь по данным
Существуют следующие основные способы передачи данных между программными единицами:
- передача данных через регистры (A и X);
- использование общих переменных;
- использование механизма формальных и фактических параметров.
6 слайд
Связь по данным
Пример передачи параметров к подпрограмме по адресу
program Ex42;
const v: Integer = 5;
w: Integer = 7;
procedure inc(var i: Integer);
begin i:=i+1 end; { inc }
begin inc(v); inc(w); inc(v) end.
H Ex42 | Ex42 start 0
T 000 480019 | jsub inc
T 003 000013 | word v ;адpес v
T 006 480019 | jsub inc
T 009 000016 | word w ;адpес w
T 00C 480019 | jsub inc
T 00F 000013 | word v ;адpес v
T 012 FF | hlt
| ; данные
T 013 000005 | v word 5
T 016 000007 | w word 7
| ; подпpогpамма inc
T 019 AC21 | inc rmo l,x ;X:="адpес адpеса паpаметpа"
T 01B 048000 | ldx 0,x ;X:="адpес паpаметpа'
T 01E 008000 | lda 0,x ;A:="значение паpаметpа"
T 021 18002F | add c1 ;A:=A+1
T 024 0C8000 | sta 0,x ;"паpаметp" := A
T 027 AC20 | rmo l,a ; Коppектиpовка
T 029 180032 | add c3 ;адpеса возвpата
T 02C AC02 | rmo a,l ;на длину ТАЗ.
T 02E 4C | rsub
| ; данные п/п inc
T 02F 000001 | c1 word 1
T 032 000003 | c3 word 3
E 000 | end Ex42
7 слайд
H Ex43 | Ex43 start 0
T 000 00001F | lda u;вызов copy(u,v)
T 003 0C0009 | sta p11
T 006 480028 | jsub copy
T 009 | p11 resb 3
T 00C 000022 | p12 word v
T 00F 000022 | lda v ;вызов copy(v,w)
T 012 0C0018 | sta p21
T 015 480028 | jsub copy
T 018 | p21 resb 3
T 01B 000025 | p22 word w
T 01E FF | hlt
| ; данные
T 01F 00000F | u word 15
T 022 | v resb 3
T 025 | w resb 3
| ; подпpогpамма copy
T 028 AC21 | copy rmo l,x ;X := "адрес ТАЗ"
T 02A 008000 | lda 0,x ;A := p1
T 02D 048003 | ldx 3,x ;X := p2
T 030 0C8000 | sta 0,x ;p2 := A
T 033 AC20 | rmo l,a ; Коppектиpовка
T 035 18003B | add c6 ;адpеса возвpата
T 038 AC02 | rmo a,l ;на длину ТАЗ.
T 03A 4C | rsub
| ; данные п/п copy
T 03B 000006 | c6 word 6
E 000 | end Ex43
Связь по данным
Пример передачи параметров к подпрограмме по адресу и по значению
program Ex43;
const u: Integer =15;
var v,w: Integer;
procedure copy(x: Integer;
var y: Integer);
begin y:=x end; {copy}
begin copy(u,v); copy(v,w) end.
8 слайд
H Ex44 | Ex44 start 0
T 000 00001F | lda u ;v:=inc(u)
T 003 0C0009 | sta p11
T 006 480028 | jsub inc
T 009 | p11 resb 3
T 00C 0C0022 | sta v
T 00F 000022 | lda v ;w:=inc(v)
T 012 0C0018 | sta p21
T 015 480028 | jsub inc
T 018 | p21 resb 3
T 01B 0C0025 | sta w
T 01E FF | hlt
| ; данные
T 01F 000011 | u word 17
T 022 | v resb 3
T 025 | w resb 3
| ; подпрограмма-функция inc
T 028 AC21 | inc rmo l,x ;X:="адрес ТАЗ"
T 02A AC20 | rmo l,a ; Корректировка
T 02C 18003B | add c3 ;адреса возврата
T 02F AC02 | rmo a,l ;на длину ТАЗ.
T 031 008000 | lda 0,x ;A:=p1
T 034 180038 | add c1
T 037 4C | rsub
| ; данные inc
T 038 000001 | c1 word 1
T 03B 000003 | c3 word 3
E 000 | end Ex44
Связь по данным
Пример организации подпрограмма, возвращающих значение
program Ex44;
const u: Integer = 10;
var v,w: Integer;
function inc(x: Integer): Integer;
begin inc:=x+1 end; { copy }
begin v:=inc(u); w:=inc(v) end.
Рабочие листы
к вашим урокам
Скачать
6 663 621 материал в базе
Настоящий материал опубликован пользователем Курамагомедова Лиана Магомедбековна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт
Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.
Удалить материалВаша скидка на курсы
40%Курс профессиональной переподготовки
500/1000 ч.
Курс повышения квалификации
72/108/144 ч.
Курс профессиональной переподготовки
300 ч. — 1200 ч.
Курс повышения квалификации
72 ч. — 180 ч.
Мини-курс
4 ч.
Мини-курс
6 ч.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.