Главная страница
Навигация по странице:

  • ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АСЕМБЛЕР ПЭВМ IBM PC

  • ОБЩИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ

  • Лло. Методические указания к выполнению лабораторных работ Пенза 2009 удк 612 05


    Скачать 33.03 Kb.
    НазваниеМетодические указания к выполнению лабораторных работ Пенза 2009 удк 612 05
    Дата16.03.2022
    Размер33.03 Kb.
    Формат файлаdocx
    Имя файлаПрограммирование - Методические ук.docx
    ТипМетодические указания
    #399365

    Министерство образования Российской Федерации

    Пензенский государственный университет

    Кафедра «Вычислительная техника»

    ПРОГРАММИРОВАНИЕ
    НА ЯЗЫКЕ АСЕМБЛЕР ПЭВМ
    IBM PC

    Методические указания
    к выполнению лабораторных работ

    Пенза 2009

    УДК 612.3.05

    Даны методические указания и задания к выполнению цикла лабораторных работ по программированию на языке ассемблера персональных ЭВМ типа IBM PC. Приведены примеры программ.

    Методические указания подготовлены на кафедре "Вычислительная техника" Пензенского государственного университета и предназначены для студентов специальности 220100 при выполнении лабораторных работ по дисциплине "Алгоритмические языки и программирование".

    Составители: Дорошенко И.Н., Никишин А.В., Шевченко Н.И., Домнин Л.Н.

    ОБЩИЕ МЕТОДИЧЕСКИЕ УКАЗАНИЯ

    Порядок выполнения работы


    1. Получите у преподавателя задание на выполнение очередной работы (вариант и дополнительные указания) и уясните цель работы).

    2. Разработайте структуру программы и схемы алгоритмов программных модулей.

    3. Реализуйте алгоритмы в виде текста на языке ассемблера.

    4. Подготовьте тестовые наборы данных, необходимые для отладки программы и демонстрации ее работоспособности.

    5. Используя подходящий текстовый редактор, перенесите ассемблерный текст на дисковый носитель в виде файла, имя которого должно иметь расширение asm.

    6. Выполните компиляцию программы, используя компилятор применяемой в учебном процессе системы программирования (например, tasm.exe).

    7. Проанализируйте результаты компиляции (файл *.lst) и при обнаружении сиснтаксических ошибок выполните коррекцию текста программы и повторите
      пп. 5 – 7. Если транслятор не обнаружил ошибок в программе, переходите к следующему пункту, используя для последующих действий объектный модуль, сформированный компилятором (файл *.obj).

    8. Выполните компоновку программы, используя редактор связей (компоновщик), имеющийся в вашей системе программирования (например tlink.exe). При обнаружении ошибок компоновки (сообщения о них содержатся в файле *.map) тщательно проанализируйте текст программы, внесите изменения и повторите
      пп. 5 – 8. При успешном завершении компоновки формируется загрузочный модуль программы (файл *.exe).

    9. Запустите турбо-отладчик (td.exe), указав в качестве параметра имя файла с загрузочным модулем программы. Выполните подготовленную вами программу в автоматическом или пошаговом режиме, или в режиме с остановом в контрольных точках. Сравните полученные результаты (в рамке сегмента данных окна CPU или на экране пользователя) с ожидаемыми (в окне Watch). В случае совпадения результатов можно предположить, что программа работает правильно.

    10. Выполните повторные прогоны программы при различных комбинациях входных данных. Целью повторных прогонов является проверка работоспособности программы по всем ее ветвям при всевозможных допустимых значениях исходных данных. Если для каждого прогона наблюдается совпадение фактических результатов с ожидаемыми, можно считать, что программа работоспособна.

    11. Сформируйте файл протокола, который должен включать:

    • исходный текст программы из окна модулей;

    • текст дизассемблированной программы из рамки программы окна CPU;

    • содержимое рамки сегмента данных окна CPU, в котором размещены исходные данные и результаты;

    • содержимое рамки регистров, флагов и стека окна CPU в контрольных точках, заданных преподавателем;

    • содержимое окна Watch после формирования окончательного результата работы программы;

    • все необходимые комментарии.

    1. Оформите отчет по лабораторной работе, который должен включать:

    • титульный лист;

    • задание;

    • описание метода решения задачи;

    • описание входных данных;

    • схему программы;

    • распечатку файла протокола;

    • анализ результатов и ошибок;

    • предложения по совершенствованию программы;

    • выводы.

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


    Лабораторная работа 1
    Тема:  Линейная программа


    Цель работы:изучение основных операций пересылки данных и операций двоичной арифметики, приобретение навыков программирования вычислений простейших арифметических выражений.

    Лабораторноезадание.   Разработать программу вычисления функции
    y = f( a, b, c, d, e). Формат данных – двойное слово.

    Методические указания.   Значения аргументов a, b, c, d, e задать в программе. Результат y в память. Правильность результата проверить с помощью программы отладчика. В процессе отладки использовать несколько тестовых наборов исходных данных, в комплексе обеспечивающих исполнение операций, как с положительными, так и с отрицательными числами. Результаты отладки зафиксировать в файле протокола.

    Варианты заданий:

    1) y=a+b-c*d/e

    2) y=a+b-c/d*e

    3) y=a+b*c-d/e

    4) y=a+b*c/d-e

    5) y=a+b/c-d*e

    6) y=a+b/c*d-e

    7) y=a-b+c*d/e

    8) y=a-b+c/d*e

    9) y=a+b-c*d/e

    10) y=a-b*c/d+e

    11) y=a-b/c+d*e

    12) y=a-b/c*d+e

    13) y=a+b-c*d/e

    14) y=a+b*c/d-e

    15) y=a-b+c/d*e

    16) y=a*b+c-d/e

    17) y=a*b+c/d-e

    18) y=a*b-c+d/e

    19) y=a*b-c/d+e

    20) y=a*b/c+d-e

    21) y=a*b/c-d*e

    22) y=a/b+c-d*e

    23) y=a/b+c*d-e

    24) y=a/b-c+d*e

    25) y=a/b-c*d+e

    26) y=a/b*c+d-e

    27) y=a/b*c-d+e

    28) y=a*b+c*d/e

    29) y=a*b-c/d+e

    30) y=a/b+c*d-e

    31) y=(a+b-c)*d/e

    32) y=(a+b-c)/d*e

    33) y=(a+b)*c-d/e

    34) y=(a+b)*c/d-e

    35) y=(a+b)/c-d*e

    36) y=(a+b)/c*d-e

    37) y=(a+b+c)*d/e

    38) y=(a+b+c)/d*e

    39) y=(a+b)*c+d/e

    40) y=(a+b)*c/d+e

    41) y=(a-b)/c+d*e

    42) y=(a-b)/c*d+e

    43) y=a*(b+c)-d/e

    44) y=a*(b+c)/d-e

    45) y=a*(b-c)+d/e


    Контрольные вопросы


    1. Укажите недопустимые сочетания операндов команды mov.

    2. Поясните логику выполнения операций push и pop.

    3. Какие регистры можно использовать при выполнении арифметических операций?

    4. Какие арифметические операции применимы как к знаковым, так и к беззнаковым данным?

    5. Поясните схему выполнения операции умножения.

    6. Поясните схему выполнения операции деления.

    7. Какие подготовительные действия следует выполнить для операции деления?

    8. В каких случаях имеет место прерывание при делении?

    Лабораторная работа 2
    Тема:  Разветвляющаяся программа


    Цель работы.   Изучение команд безусловного и условного переходов, получение навыков программирования разветвляющихся вычислений.

    Лабораторное задание.   Разработать программу вычисления функции, определяемой с помощью следующего условного оператора:

    IF лв THEN y:= f1(a,b,c,d,e) ELSE y:= f2(a,b,c,d,e), где

    лв - логическое выражение, например, (a > b) and (d
    f1, f2-функции, приведенные в описании к работе 1.

    Формат данных – байт.

    Методические указания.   Значения аргументов a, b, c, d, e задать в программе. Результат y проверить с помощью программы отладчика. В процессе отладки использовать несколько тестовых наборов исходных данных, в комплексе обеспечивающих исполнение всех ветвей программы, и занести результаты в файл протокола.

    Варианты заданий.   Для каждого варианта указаны номера, под которыми функции f1 и f2 приведены в описании к лабораторной работе 1, и логическое выражение (берется в той же строки, где находится номер варианта).

    1) 1 16

    2) 2 17

    3) 3 18

    4) 4 19

    5) 5 20

    6) 6 21

    7) 7 22

    8) 8 23

    9) 9 24

    10) 10 25

    11) 11 26

    12) 12 27

    13) 13 28

    14) 14 29

    15) 15 30

    16) 16 31

    17) 17 32

    18) 18 33

    19) 19 34

    20) 20 35

    21) 21 36

    22) 22 37

    23) 23 38

    24) 24 39

    25) 25 40

    26) 26 41

    27) 27 42

    28) 28 43

    29) 29 44

    30) 30 45

    31) 31 1

    32) 32 2

    33) 33 3

    34) 34 4

    35) 35 5

    36) 36 6

    37) 37 7

    38) 38 8

    39) 39 9

    40) 40 10

    41) 41 11

    42) 42 12

    43) 43 13

    44) 44 14

    45) 45 15

    (a>b)and(c<>d)

    (a>=b)and(c
    (a=b)and(c>=d)

    (a<=b)and(c>=d)

    (a
    (b>c)or(d
    (b>=c)or(d
    (b-c)or(d<=e)

    (b<=c)or(d=e)

    (b=e)

    (b!=c)or(d>e)

    (c>=d)xor(e
    (c=d)xor(e<=a)

    (c
    (c<=d)xor(e>=a)


    Контрольные вопросы


    1. Что понимается под ‘коротким’, ‘ближним’ и ‘дальним’ переходами?

    2. Перечислите флаги, используемые при выполнении условных переходов.

    3. Как реализовать условный переход, отличный от “короткого”?

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

    5. Охарактеризуйте группу команд условных переходов, ориентированных на сравнение знаковых чисел.

    Лабораторная работа 3
    Тема:  Циклическая программа


    Цель работы:   изучение языковых средств и принципов организации циклов на ассемблере, приобретение навыков программирования циклической обработки массивов данных.

    Лабораторное задание:   разработать программу вычисления таблицы значений функции
    y = f( a, b, c, d, e) при изменении одного из аргументов с постоянным шагом h. Вычислить n значений функции.

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

    1) в виде одного массива, содержащего n троек значений “порядковый номер – аргумент - функция”;

    2) в виде одного массива, содержащего n троек значений “функция – аргумент – порядковый номер”;

    3) в виде двух массивов: массива аргумента, содержащего n пар значений “порядковый номер - аргумент”, и массива функции, содержащего n пар значений “порядковый номер - функция”;

    4) в виде двух массивов: массива аргумента, содержащего n пар значений “аргумент – порядковый номер” и массива функции, содержащего n пар значений “функция - порядковый номер”.

    Значения аргументов a, b, c, d, e, шаг приращения меняющегося аргумента h и количество табличных значений n задать в программе. Результат проверить с помощью программы отладчика.

    Варианты заданий:   Для каждого варианта указан номер, под которым f приведена в описании к работе 1, варьируемый аргумент (a, b, c, d, e), способ представления результата (1, 2, 3, 4) и формат данных (байт – b, слово - w):

    1)  31 a 1 b

    2)  32 b 2 w

    3)  33 c 3 b

    4)  34 d 4 w

    5)  35 e 1 w

    6)  36 a 2 b

    7)  37 b 3 w

    8)  38 c 4 b

    9)  39 d 1 b

    10)  40 e 2 w

    11)  41 a 3 b

    12)  42 b 4 w

    13)  43 c 1 w

    14)  44 d 2 b

    15)  45 e 3 w

    16)  1 a 4 b

    17)  2 b 1 b

    18)  3 c 2 w

    19)  4 d 3 b

    20)  5 e 4 w

    21)  6 a 1 w

    22)  7 b 2 b

    23)  8 c 3 w

    24)  9 d 4 b

    25)  10 e 1 b

    26)  11 a 2 w

    27)  12 b 3 b

    28)  13 c 4 w

    29)  14 d 1 w

    30)  15 e 2 b

    31)  16 a 3 w

    32)  17 b 4 b

    33)  18 c 1 b

    34)  19 d 2 w

    35)  20 e 3 b

    36)  21 a 4 w

    37)  22 b 1 w

    38)  23 c 2 b

    39)  24 d 3 w

    40)  25 e 4 b

    41)  26 a 1 b

    42)  27 b 2 w

    43)  28 c 3 b

    44)  29 d 4 w

    45)  30 e 1 w

    Контрольные вопросы


    1. Назовите известные вам типы циклических процессов.

    2. Как организовать цикл с помощью команд условных переходов, не прибегая к специальным командам управления циклами?

    3. Перечислите команды управления циклом. Поясните логику исполнения каждой команды.

    4. Как организовать цикл с помощью команды управления циклом?

    5. Поясните принцип использования стека при организации вложенных циклов.

    6.Есть ли ограничения на размер тела цикла в байтах? 

    Лабораторная работа 4
    Тема:  Преобразование представления числовых данных


    Цель работы:   изучение способов представления и алгоритмов преобразования числовых данных.

    Лабораторное задание.   Разработать программу перевода целого знакового числа из одной системы счисления в другую.

    Методические указания.   Любое целое число p, представленное в некоторой позиционной системе счисления по основанию q в виде последовательности
    dndn-1djd1d0,   где di – цифры этой позиционной системы от 0 до q-1, может рассматриваться как сокращенная запись полинома

    p=dn*qn+dn-1*qn-1+…+di*qi+…+d1*q+d0

    Для получения представления числа в другой позиционной системе счисления необходимо коэффициенты di, а также основание q выразить в этой системе и вычислить значение полинома. Вычисление можно выполнить по различным схемам, но наиболее экономичной по количеству операций является схема Горнера, в основу которой положена следующая форма записи полинома:

    p=(((dn*q+dn-1)*q+…+di)*q+…+d1)*q+d0

    В этом случае для получения результата требуется всего n умножений и n сложений, которые можно выполнить в цикле.

    В общем случае для решения задачи перевода целого числа из одной системы счисления в другую следует использовать известный алгоритм многократного деления переводимого числа на основание новой системы счисления по правилам исходной системы счисления.

    Для вариантов 1…15 исходное число задать в виде строки символов в коде ASCII, результат сформировать в виде двоичного кода в формате слова. Для вариантов 16…30 исходное данное задать в виде двоичного числа в формате слова, результат сформировать в виде строки символов в коде ASCII.

    Число в ASCII разместить в памяти одним из двух способов:

    1. Чем старше разряд, тем старше адрес (ЦЦЦ…ЦЗн);

    2. Чем старше разряд, тем младше адрес (ЗнЦЦЦ…Ц).

    Количество разрядов (байтов) в ASCII-представлении числа выбирается таким, чтобы обеспечивалась возможность работы с числами в диапазоне –32768…+32767.

    Варианты заданий. Для каждого варианта указаны основания систем счисления исходного числа и результата, а также способ размещения числа в коде ASCII в памяти:

    1

    2->2

    1

    2

    3->2

    2

    3

    4->2

    1

    4

    5->2

    2

    5

    6->2

    1

    6

    7->2

    2

    7

    8->2

    1

    8

    9->2

    2

    9

    10->2

    1

    10

    11->2

    2

    11

    12->2

    1

    12

    13->2

    2

    13

    14->2

    1

    14

    15->2

    2

    15

    16->2

    1

    16

    2->2

    2

    17

    2->3

    1

    18

    2->4

    2

    19

    2->5

    1

    20

    2->6

    2

    21

    2->7

    1

    22

    2->8

    2

    23

    2->9

    1

    24

    2->10

    2

    25

    2->11

    1

    26

    2->12

    2

    27

    2->13

    1

    28

    2->14

    2

    29

    2->15

    1

    30

    2->16

    2


    Контрольные вопросы


    1. Назовите форматы представления числовых данных в ЭВМ. Охарактеризуйте каждый из них.

    2. Какие способы перевода чисел из одной системы в другую вам известны?

    3. Дайте характеристику выполнения поразрядных логических операций.

    4. Дайте характеристику выполнения операций сдвигов и логических сдвигов.


    Лабораторная работа 5
    Тема:  Процедуры


    Цель работы:   получение навыков разработки структурной организации ассемблерных программ и ее реализации на основе аппарата процедур, изучение способов организации связи по данным между процедурами.

    Лабораторноезадание.   Разработать программу вычисления функции y=f(a,b,c,d,e). Значения аргументов a, b, c, d, eдолжны вводиться с клавиатуры ПЭВМ. Значение функции y следует вывести на экран дисплея.

    Методические указания.   Для ввода-вывода числовых данных использовать следующий формат: ЗнЦЦЦ…Ц, где Ц – цифра (0…9), Зн – знак (+,-). Предусмотреть в программе вывод текста, содержащего вычисляемую функцию и формат аргументов, а также выдачу запроса на ввод каждого аргумента. Вычисление функции и преобразование вводимых и выводимых данных оформить в виде процедур: func – вычисление заданной функции, ascbin – преобразование числа из строки ASCII-кодов в двоичное число,
    binasc – преобразование числа, представленного в виде двоичного кода, в строку ASCII кодов.

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

    Способ передачи

    Передаются данные

    Передаются адреса

    Через регистры

    1

    2

    Через сегмент стека

    3

    4

    Через сегмент данных

    5

    6

    Через сегмент кода

    7*

    8*

    * – Если реализация данного варианта невозможна по объективным причинам (ограничения накладываемые операционной системой и средой разработки), то вариант заменяется на подобный, не указанный в задании.

    Варианты заданий. Для каждого варианта указан номер, под которым функция f приведена в описании лабораторной работы №1, способ передачи данных между вызывающей и вызываемой процедурами соответственно для func, ascbin, binasc, а также формат данных (b – байт, w – слово):



    f

    Вызов/возврат
    (func)

    Вызов/возврат
    (ascbin)

    Вызов/возврат
    (binasc)

    Формат

    1)

    30

    1/2

    3/4

    5/6

    b

    2)

    29

    2/3

    4/5

    6/7

    b

    3)

    28

    3/4

    5/6

    7/8

    b

    4)

    27

    4/5

    6/7

    8/1

    b

    5)

    26

    5/6

    7/8

    1/2

    b

    6)

    25

    6/7

    8/1

    2/3

    b

    7)

    24

    7/8

    1/2

    3/4

    b

    8)

    23

    2/1

    6/5

    4/3

    b

    9)

    22

    3/2

    7/6

    5/4

    w

    10)

    21

    4/3

    8/7

    6/5

    w

    11)

    20

    5/4

    1/8

    7/6

    w

    12)

    19

    6/5

    2/1

    8/7

    w

    13)

    18

    7/6

    3/2

    1/8

    w

    14)

    17

    8/7

    4/3

    2/1

    w

    15)

    16

    1/8

    5/4

    3/2

    w

    16)

    15

    1/7

    2/6

    3/5

    b

    17)

    14

    2/8

    3/7

    4/6

    b

    18)

    13

    3/1

    4/8

    5/7

    b

    19)

    12

    4/2

    5/1

    6/8

    b

    20)

    11

    5/3

    6/2

    7/1

    b

    21)

    10

    6/4

    7/3

    8/2

    b

    22)

    9

    7/5

    8/4

    1/3

    b

    23)

    8

    8/6

    1/5

    2/4

    w

    24)

    7

    1/6

    2/5

    3/4

    w

    25)

    6

    2/7

    3/6

    4/5

    w

    26)

    5

    3/8

    4/7

    5/6

    w

    27)

    4

    4/1

    5/8

    6/7

    w

    28)

    3

    5/2

    6/1

    7/8

    w

    29)

    2

    6/3

    7/2

    8/1

    w

    30)

    1

    7/4

    8/3

    1/2

    w

    Контрольные вопросы


    1. Какие языковые средства используются в ассемблере для определения и вызова процедур?

    2. Какие действия выполняются при вызове процедуры и возврате из процедуры?

    3. Какие существуют способы передачи аргументов и возврата результата при вызове процедуры? Охарактеризуйте каждый из них.

    4. Каково назначение стека при обеспечении взаимодействия между вызывающей и вызываемой процедурами?

    Лабораторная работа 6
    Тема:  Макросы


    Цель работы:   изучение аппарата макросредств ассемблера и получение навыков разработки и использования макроопределений.

    Лабораторноезадание.   Разработать программу вычисления таблицы значений функции y=f(a,b,c,d,e) при изменении одного из ее аргументов в соответствии с заданной зависимостью. Обеспечить вывод на экран вида табулируемой функции, значений неизменяемых аргументов и результатов вычислений в виде пар: “значение варьируемого аргумента – значение функции”.

    Методические указания.   Значения всех аргументов, в том числе и начальное значение варьируемого аргумента, следует задать в программе. Значения варьируемого аргумента, а также соответствующие значения функции должны быть представлены в виде массивов. Составить макросы для каждого поддиапазона изменения индекса i, а также для вычисления значения функции. Вид функции y следует взять из задания к лабораторной работе №1. В программе необходимо использовать макросы общего вида и специальные макросы.

    Варианты заданий.   Для каждого варианта указана изменяемая переменная (ai, bi, ci, di или ei) как функция индекса i. Вид этой функции различен для разных поддиапазонов изменения индекса i (1..5, 6..10).



    вар.

    Изм-ая
    перем-я

    i=1…5

    i=6…10

    1

    ai

    (i+1)*5

    2*i-1

    2

    bi

    8-(i+2)

    3*(i-1)

    3

    ci

    (i+3)/i

    4*i2

    4

    di

    i+4*a

    5*i+3

    5

    ei

    i2+5

    6*i-b

    6

    ai

    b*13-i

    7*(i/2)

    7

    bi

    i+e*i

    30-8*i

    8

    ci

    i+8*a

    9*i+14

    9

    di

    b*i+9

    10*i

    10

    ei

    i*d+10

    2+11*i

    11

    ai

    (i-1)2

    (i+c)/2

    12

    bi

    e2-i

    5+a/3

    13

    ci

    3*i2

    b*4-i

    14

    di

    1+7*i

    (i+1)2

    15

    ei

    5*(i/3)

    9+(i-7)

    16

    ai

    8*i-c

    b2+i

    17

    bi

    (d-c)*i

    100-i2

    18

    ci

    (i-a)/4

    13+2*i

    19

    di

    5*(i/2)

    (i+4)*a

    20

    ei

    i*c

    b*i-11

    21

    ai

    d2-15

    (i-e)*i

    22

    bi

    6*i-a

    (i-1)*2

    23

    ci

    b*i-8

    i-5*a

    24

    di

    11*i

    e*i-16

    25

    ei

    7+3*i

    i*b+1

    26

    ai

    (i-d)/3

    (i-2)2

    27

    bi

    (5+a)/3

    (e-i)2

    28

    ci

    e*6-i

    4*i2

    29

    di

    (i+b)2

    c+3*i

    30

    ei

    2*(i+1)

    (i/2)*4


    Контрольные вопросы


    1. В чем заключается основное отличие макроса от процедуры?

    2. Поясните механизм макровызова.

    3. Можно ли использовать в программе макроопределение без макровызова?


    Лабораторная работа 7
    Тема:  Гибридная программа Си-Ассемблер


    Цель работы:   изучение типов вызова функций языка Си и получение навыков разработки ассемблерных программ, вызывающих стандартные функций Си.

    Лабораторноезадание.   Разработать программу вычисления функции
    y = f( a, b, c, d, e). Формат данных – двойное слово.

    Методические указания.   Значения аргументов a, b, c, d, e ввести с клавиатуры, используя стандартную функцию Си scanf. Результат распечатать на экран используя функцию printf. Вид функции y следует взять из задания к лабораторной работе №1.

    Варианты заданий. Для каждого варианта указан номер, под которым функция f приведена в описании лабораторной работы №1.

    № варианта

    f

    № варианта

    f

    № варианта

    f

    № варианта

    f

    № варианта

    f

    1

    7

    11

    17

    21

    27

    31

    37

    41

    2

    2

    8

    12

    18

    22

    28

    32

    38

    42

    3

    3

    9

    13

    19

    23

    29

    33

    39

    43

    4

    4

    10

    14

    20

    24

    30

    34

    40

    44

    5

    5

    11

    15

    21

    25

    31

    35

    41

    45

    6

    6

    12

    16

    22

    26

    32

    36

    42







    7

    13

    17

    23

    27

    33

    37

    43







    8

    14

    18

    24

    28

    34

    38

    44







    9

    15

    19

    25

    29

    35

    39

    45







    10

    16

    20

    26

    30

    36

    40

    1






    Контрольные вопросы


    1. Какие существуют основные типы вызова? Охарактеризуйте их.

    2. Какой тип вызова используется для обращения к стандартным функциям языка Си?


    написать администратору сайта