Инфоурок Информатика ПрезентацииОрганизация подпрограмм

Организация подпрограмм

Скачать материал
Скачать материал "Организация подпрограмм"

Получите профессию

HR-менеджер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Портной

Описание презентации по отдельным слайдам:

  • Организация подпрограммПодпрограмма-некоторый поименованный участок кода прог...

    1 слайд

    Организация подпрограмм
    Подпрограмма-некоторый поименованный участок кода программы синтаксически оформленный так, что имеется возможность его вызова из любого места программы.

    Назначение подпрограмм:
    Программирование на более высоком уровне.
    Уменьшение размеров программы.

  • Организация подпрограммС целью создания возможности организации подпрограмм в...

    2 слайд

    Организация подпрограмм
    С целью создания возможности организации подпрограмм в архитектуру УМ включены специальные средства:

    - регистр связи L;
    - команда " Переход к подпрограмме " (jsub);
    - команда " Возврат из подпрограммы" (rsub);
    - посылочные команды ldl и stl.

  • Организация подпрограммПроблемы при работе с подпрограммами:
Связь по управле...

    3 слайд

    Организация подпрограмм
    Проблемы при работе с подпрограммами:
    Связь по управлению





    Связь по данным

  • Связь по управлениюПример иллюстрирует организацию обращения к подпрограмме//...

    4 слайд

    Связь по управлению
    Пример иллюстрирует организацию обращения к подпрограмме
    // Ex41.cpp
    #include "stdafx.h"
    int v;
    void inc()
    {
    v++;
    }
    int main()
    {
    v = 1;
    inc();
    inc();
    return 0;
    }

  • Связь по даннымСуществуют следующие основные способы передачи данных между пр...

    5 слайд

    Связь по данным
    Существуют следующие основные способы передачи данных между программными единицами:

    - передача данных через регистры (A и X);
    - использование общих переменных;
    - использование механизма формальных и фактических параметров.

  • Связь по даннымПример передачи параметров к подпрограмме по адресу// Ex42.cpp...

    6 слайд

    Связь по данным
    Пример передачи параметров к подпрограмме по адресу
    // Ex42.cpp :
    #include "stdafx.h"
    int v = 5, w = 7;
    void inc(int *i)
    { (*i)++; }
    int main()
    {
    inc(&v);
    inc(&w);
    inc(&v);
    return 0;
    }
    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

  • H Ex43       | Ex43  start  0
T 000 00001F |       lda    u;вызов copy(u,v)
T...

    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
    Связь по данным
    Пример передачи параметров к подпрограмме по адресу и по значению
    // Ex43.cpp
    #include "stdafx.h"
    const int u = 15;
    int v, w;
    void copy(int x, int *y)
    { *y = x; }
    int main()
    {
    copy(u, &v);
    copy(v, &w);
    return 0;
    }

  • H Ex44       | Ex44  start  0
T 000 00001F |       lda    u    ;v=inc(u)
T 00...

    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
    Связь по данным
    Пример организации подпрограмма, возвращающих значение
    // Ex44.cpp
    #include "stdafx.h"
    const int u = 10;
    int v, w;
    int inc(int x)
    {
    return x + 1;
    }
    int main()
    {
    v = inc(u);
    w = inc(v);
    return 0;
    }

  • ПримерОбработка массива подпрограммой #include "stdafx.h"

void mas_max(int l...

    9 слайд

    Пример
    Обработка массива подпрограммой
    #include "stdafx.h"

    void mas_max(int l, int *d, int *max)
    {
    int max_l=d[0];
    for (int i =1; i < l; i++)
    if (d[i] > max_l) max_l = d[i];
    *max = max_l;
    }

    int main()
    {
    int d1[5] = { 1,2,1,2,1 };
    int d2[3] = { 1,2,13};
    int max1, max2;
    mas_max(5, d1, &max1);
    mas_max(3, d2, &max2);
    return 0;
    }

  • H ExMas      | ExMas start  0
T 000 480037 |       jsub   MasMax
T 003 00000F...

    10 слайд

    H ExMas | ExMas start 0
    T 000 480037 | jsub MasMax
    T 003 00000F | l1 word 15 ;значение l*3
    T 006 000019 | word d1 ;адpес d1
    T 009 000031 | word max1 ;адpес max1
    T 00C 480037 | jsub MasMax
    T 00F 000009 | l2 word 9 ;значение l*3
    T 012 000028 | word d2 ;адpес d2
    T 015 000034 | word max2 ;адpес max2
    T 018 FF | hlt
    | ; данные
    T 019 | d1 resb 15
    T 028 | d2 resb 9
    T 031 | max1 resb 3
    T 034 | max2 resb 3
    Пример
    Обработка массива подпрограммой

  • T 037 AC21   | MasMax rmo    l,x ;X=&quot;адpес паpаметpа l (адрес ТАЗ)&quot;
T 039 008...

    11 слайд

    T 037 AC21 | MasMax rmo l,x ;X="адpес паpаметpа l (адрес ТАЗ)"
    T 039 008000 | lda 0,x ;A="значение паpаметpа l"
    T 03C 188003 | add 3,x ;A=«адрес массива»+«длина массива(А)»
    T 03F 0C008A | sta ll ;ll = A(адрес ячейки памяти идущей
    ; следюущей после последнего элемента массива)
    T 042 048003 | ldx 3,x ;X="адpес паpаметpа d"(адрес начала массива)
    T 045 008000 | lda 0,x ;A="значение паpаметpа d[0]"
    T 048 0C008D | sta max ;сохранение певрого элемента массива
    ;в лок. перем.
    T 04B AC10 | rmo x,a ;i=i+1(X=X+3)
    T 04D 180084 | add c3;X-адрес элемента d[1]
    T 050 AC01 | rmo a,x
    T 052 008000 | rpt lda 0,x ;A=d[i]
    T 055 28008D | comp max ;A > max ?
    T 058 380061 | jlt m ;Переход, если "меньше".
    T 05B 300061 | jeq m ;Пеpеход, если "равно".
    T 05E 0C008D | sta max ;max=A
    T 061 AC10 | m rmo x,a ;i=i+1(X=X+3)
    T 063 180084 | add c3
    T 066 AC01 | rmo a,x
    T 068 28008A | comp ll ;X < ll ?
    T 06B 380052 | jlt rpt ;Переход, если "да".(Если проверели не все
    ;элементы массива, то возвращаемся в начало цикла)
    Пример
    Обработка массива подпрограммой

  • T 06E AC21   |       rmo    l,x  ;X=&quot;адpес (адpеса паpаметpа max(глобальной)-...

    12 слайд

    T 06E AC21 | rmo l,x ;X="адpес (адpеса паpаметpа max(глобальной)-6)"
    T 070 048006 | ldx 6,x ;X="адpес паpаметpа max(глобальной)"
    T 073 00008D | lda max ;Сохранение максимального значения в глобальную
    T 076 0C8000 | sta 0,x ;переменную
    |
    T 079 AC20 | rmo l,a ;Коppектиpовка
    T 07B 180087 | add c9 ;адpеса возвpата
    T 07E AC02 | rmo a,l ;на длину ТАЗ.
    T 080 4C | rsub
    | ; данные п/п MasMax
    T 081 000001 | c1 word 1
    T 084 000003 | c3 word 3
    T 087 000009 | c9 word 9
    T 08A | ll resb 3
    T 08D | max resb 3
    E 000 | end ExMas
    Пример
    Обработка массива подпрограммой

  • ПримерОрганизация вложенных подпрограмм#include &quot;stdafx.h&quot;

void inc(int *i)...

    13 слайд

    Пример
    Организация вложенных подпрограмм
    #include "stdafx.h"

    void inc(int *i)
    {
    (*i)++;
    }
    void inc2(int *i)
    {
    inc(i);
    inc(i);
    }

    int main()
    {
    int v = 5;
    inc2(&v);
    return 0;
    }

  • H VPod       | VPod  start  0
T 000 48000A |       jsub   inc2
T 003 000007 |...

    14 слайд

    H VPod | VPod start 0
    T 000 48000A | jsub inc2
    T 003 000007 | word v ;адpес v
    T 006 FF | hlt
    | ; данные
    T 007 000005 | v word 5
    |
    | ; подпpогpамма inc2
    T 00A AC21 | inc2 rmo l,x ;X="адpес адpеса паpаметpа"
    T 00C 008000 | lda 0,x ;A="адpес паpаметpа'
    T 00F 0C0020 | sta v1
    T 012 0C0026 | sta v2
    T 015 AC20 | rmo l,a ; Коppектиpовка
    T 017 18004B | add c3 ;адpеса возвpата
    T 01A 0C002F | sta ll ;на длину ТАЗ. Сохранение регистра L
    T 01D 480032 | jsub inc
    T 020 | v1 resb 3 ;адpес параметра
    T 023 480032 | jsub inc
    T 026 | v2 resb 3 ;адpес параметра
    T 029 00002F | lda ll
    T 02C AC02 | rmo a,l ; Восстановление регистра L
    T 02E 4C | rsub
    | ; данные п/п inc2
    T 02F | ll resb 3
    |

    Пример
    Организация вложенных подпрограмм

  • | ; подпpогpамма inc
T 032 AC21   | inc   rmo    l,x  ;X=&quot;адpес...

    15 слайд

    | ; подпpогpамма inc
    T 032 AC21 | inc rmo l,x ;X="адpес адpеса паpаметpа"
    T 034 048000 | ldx 0,x ;X="адpес паpаметpа'
    T 037 008000 | lda 0,x ;A="значение паpаметpа"
    T 03A 180048 | add c1 ;A=A+1
    T 03D 0C8000 | sta 0,x ;"паpаметp" = A
    T 040 AC20 | rmo l,a ; Коppектиpовка
    T 042 18004B | add c3 ;адpеса возвpата
    T 045 AC02 | rmo a,l ;на длину ТАЗ.
    T 047 4C | rsub
    | ; данные п/п inc
    T 048 000001 | c1 word 1
    T 04B 000003 | c3 word 3
    E 000 | end VPod

    Пример
    Организация вложенных подпрограмм

Получите профессию

Копирайтер

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 663 802 материала в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 12.01.2020 101
    • PPTX 273 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Цыбжитова Дарижап Жамсуевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Цыбжитова Дарижап Жамсуевна
    Цыбжитова Дарижап Жамсуевна
    • На сайте: 3 года и 4 месяца
    • Подписчики: 0
    • Всего просмотров: 72819
    • Всего материалов: 199

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Бухгалтер

Бухгалтер

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 23 человека из 16 регионов

Курс повышения квалификации

Организация преподавания информационных систем и технологий в профессиональном образовании

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Этот курс уже прошли 75 человек

Курс профессиональной переподготовки

Информационные системы и технологии: теория и методика преподавания в профессиональном образовании

Преподаватель информационных систем и технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 13 человек

Курс профессиональной переподготовки

Информатика: теория и методика преподавания с применением дистанционных технологий

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 18 человек

Мини-курс

Социальные и правовые аспекты эпохи Просвещения: влияние на образование сегодня

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Продуктовый успех: стратегии и инструменты для создания, улучшения и продвижения продуктов на рынке

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Эволюция классической музыки до романтизма

4 ч.

780 руб. 390 руб.
Подать заявку О курсе