Формулировка и план сдачи заданий по курсу "Основы системного программирования" 8 сентября 2003 года Лектор: Богоявленский Юрий Анатольевич Эл. почта: Yury.Bogoyavlenskiy[at]cs.karelia.ru Инструктор: Богоявленская Ольга Юрьевна Эл. почта: Olga.Bogoiavlenskaia[at]cs.karelia.ru Инструктор: Чуйко Юлия Васильевна Эл. почта: Julia.Chuiko[at]cs.karelia.ru Инструктор: Hазаров Тимофей Валерьевич Эл. почта: Timophey.Nazarov[at]cs.karelia.ru Задания оцениваются по пятибалльной шкале. В том случае, если студент сдал задание по истечении срока, он получает 0 (ноль) баллов. Если хотя бы одно задание не сдано (даже на ноль), то студент не допускается к сдаче зачета. Задача должна быть сдана на занятии *до* срока, указанного в графике, *не* включая саму дату. Критериями оценки являются следующие факторы: 1) соответствие выполненного задания требованиям; 2) структурирование текста программы; 3) наличие комментариев; 4) демонстрация культуры и грамотности при написании комментариев. Распределение времени выполнения заданий по занятиям и дополнительные требования при сдаче: 1. Изучить распечатку 1 (посмотреть как работает: что делает, как делает). /владение редактором MultiEdit/ Дата сдачи: 3.10 2. Изучить распечатку 2. Найти ошибку и исправить ее. /умение работать с системой Turbo Debugger/ Дата сдачи: 31.10 3. Изучить распечатку 3. Закомментировать программу. Дата сдачи: 14.11 4. Изучить распечатку 4. Показать отличие символа "0" от цифры 0. /знание справочных систем Norton Guides, TechHelp, TurboHelp/ Дата сдачи: 28.11 5. С использованием программ 3 и 4 разработать программу, которая суммирует произвольное количество одноцифровых чисел. При получении символа "@" суммирование прекращается и сумма выводится на экран. Сумма должна накапливаться в машинном слове. Сделать контроль переполнения. Дата сдачи: 13.12 Влияние баллов на получение отметки "зачтено": меньше 15 баллов - студент не допускается к сдаче зачета, 15-20 баллов - обычный режим, 20-25 баллов - студент получает привилегии при сдаче зачета, которые определяются лектором. II семестр 6. Суммирование многоцифровых чисел. Контроль слагаемых и переполнения. Дата сдачи: 5.03 7. Выполнить 6-е задание в технике подпрограмм (как минимум - две). Многоцифровые числа могут быть отрицательными. В подпрограммах должны быть реализованы передача параметров и возвращение значений. Примечание: это задание можно выполнять только после сдачи программы, приведенной на лекции (передача параметров через стек с использованием соглашений о связях в стиле Си) или на примере своей 7-й, использующей ту же технику. Необходимо рассказать, как работают со стеком команды PUSH, CALL, RET, [BP+4]. Показать данные в стеке в окне CPU Turbo Debugger'а. Только после этого можно перейти к Заданию 7. Дата сдачи: 16.04 8. Выполнить 7-е задание с помощью техники раздельной компиляции (PUBLIC/EXTRN или GLOBAL). Необходимо реализовать раздельную трансляцию кода и данных. Дата сдачи: 14.05 Дополнительные задания. С раздельной компиляцией, несколькими процедурами. /Выполняются при досрочной сдаче обязательных 8 заданий/ 9. Заданы три массива чисел, каждое из которых хранится в машинном слове (спросить их размер и ввести ли значения с клавиатуры или сгенерировать их псевдо-случайно). Для каждого найти наибольшее и наименьшее значения в знаковой и беззнаковой интерпретациях. Вывести массивы на экран, чтобы можно было увидеть найденные числа. Размер массива ограничить количеством чисел, помещающихся в экран. 10. Стыковка модулей, написанных на языке Ассемблера, с модулями на языке Си. Задачу согласовать с преподавателем. Влияние баллов на получение отметки "зачтено": меньше 24 баллов - студент не допускается к сдаче зачета, 24-36 баллов - обычный режим, 36-40 баллов - студент получает привилегии при сдаче зачета, которые определяются лектором. Литература 1. Богоявленский Ю. А., Печников А. А., Дьяконов М. В. Центральные процессоры персональных ЭВМ 2. Богоявленский Ю. А., Печников А. А., Дьяконов М. В. Язык ассемблера 3. Пильщиков В. Н. Программирование на языке ассемблера для IBM PC 4. Белецкий Я. Турбо ассемблер. Версия 2.0