Колледж приборостроения и информационных технологий
Методические указания по проведению практических занятий
По профессиональному модулю ПМ.01 Разработка программных модулей программного обеспечения для компьютерных систем междисциплинарного курса МДК.01.01 Системное программирование
Специальности 09.02.03 Программирование в компьютерных системах
Составитель:
Беседин Андрей Владимирович, преподаватель высшей квалификационной категории Колледжа приборостроения и информационных технологий
Москва
Введение
Методические указания по выполнению практических работ по
МДК 01.01 «Системное программирование» предназначены для студентов специальности 09.02.03 «Программирование в компьютерных системах»
Методические указания направлены на формирование умений, знаний, общих и профессиональных компетенций в соответствии с требованиями к результатам освоения программы подготовки специалистов среднего звена ФГОС СПО по специальности 09.02.03 «Программирование в компьютерных системах» и рабочей программы ПМ.01 «Разработка программных модулей программного обеспечения для компьютерных систем» МДК 01.01 «Системное программирование».
Практические работы посвящены изучению архитектуры вычислительной машины и ее функционирования, принципов обработки машинных команд, особенностей реализации обработки различных типов данных. Рассматриваются принципы низкоуровневого программирования разветвляющихся и циклических вычислительных процессов, обработки массивов, подпрограмм с особенностями передачи в них параметров.
Основная цель практических работ – сформировать у студентов глубокое понимание процессов, протекающих в вычислительных машинах при выполнении различного рода программ, что позволит значительно повысить качественный уровень и эффективность будущих разработок вычислительных систем.
Практическая работа №1
Освоение работы отладчика AFDPro.
Цель занятия: изучить работу отладчика AFDPro.
Отладчик - программа для отладки программ.
Например, у вас что-то не работает, и нужно найти причину, но мы хотим посмотреть на работу программы "изнутри". Откроем программу test.com в отладчике:
afdpro test.com
s1 segment
org 100h
begin:
mov ah,09h
lea dx,mes
int 21h
int 20h
mes db ‘Hello world!’
s1 ends
end begin
Файл afdpro.exe должен быть прописан в системных путях или находиться в папке с программой.
Рис. 1. Интерфейс программы AFDPro.
В верхней части программы отображаются значения регистров. Правее — состояние Stack — стека. Ниже — командная строка, а ещё ниже код программа (первые четыре строчки соответствуют нашему коду).
Функциональные клавиши:
F1 — пошаговая трассировка с заходом в прерывания и процедуры.
F2 — то же самое, но без захода в процедуры и прерывания.
Чтобы перемещаться и изменять, например, регистры, дамп памяти - используйте клавиши F7 (вверх), F8 (вниз), F9 (влево), F10 (вправо).
Пример пошагового выполнения (отладки) программы:
Нажмём F2: программа переместит нас на следующую строчку, при этом регистры будут отображать числовые значения, в них хранящиеся. Первой командой мы занесли в ah число 09h. Всё правильно: в левом верхнем углу значение регистра ax показывает 0900 (ah=9, al=0 - он не менялся). Следующее нажатие F2 — значение регистра dx стало равным 109h. Ещё раз нажимаем F2 и ещё раз — и мы видим надпись "Program terminated OK" — программа успешно завершила свою работу. Если хотите, можете проверить работу программы ещё раз — для этого нужно нажать клавишу F3 и Enter.
Рассмотрим подробнее команду mov dx,offset helloworld. В отладчике мы видим иное: MOV DX,0109.
Дело в том, что регистры общего назначения, в том числе и dx, хранят всего лишь 2 байта. Вся фраза никак не поместится в регистр dx. Поэтому запись MOV DX,0109 указывает на смещение, где хранится наша фраза. Проверим это.
Нажмём клавишу F8 так, чтобы курсор переместился в окно 2. Заменяем значения DS 0000 на DS 0109. В правой части мы видим фразу "Hello, world!".
Задание для выполнения
Написать программу, которая выводит два сообщения:
Я учусь пользоваться отладчиком.
Ура! Я научился пользоваться отладчиком!
Выписать в конспект состояние регистров ax, bx, cx,dx, ip, cs, ds, каждого пошагового действия написанной программы в отладчике AFDPro.
Критерии оценок:
5 – работа выполнена полностью (решена поставленная задача). В тексте программы нет синтаксических ошибок. Разработан оптимальный алгоритм решенной задачи. Конспект составлен с учетом задания, качественное внешнее оформление
4 – работа выполнена полностью (решена поставленная задача). В тексте программы нет синтаксических ошибок. Разработан не оптимальный алгоритм решенной задачи. Конспект выполнен по заданию, есть небольшие недочеты в работе.
3 – работа выполнена полностью (решена поставленная задача). В тексте программы допущены синтаксические ошибки. Разработан не оптимальный алгоритм решенной задачи. при выполнении конспекта наблюдается отклонение от задания, удовлетворительное внешнее оформление
2 – поставленная задача не была реализована. Отсутствие конспекта.
Практическая работа №2
Разработка EXE-программ.
Цель занятия: научиться разрабатывать программы, написанные на языке программирования низкого уровня Assembler и формировать exe-файлы.
В отличие от языков программирования высокого уровня, язык ассемблера поставляется без среды разработки программ. Поэтому разработчику приходится самостоятельно контролировать весь процесс создания программы. Для языка ассемблера этот процесс включает в себя следующие этапы:
1. Постановка задачи (точное и подробное описание функциональности будущей программы, а также описание всех входных и выходных данных и способа их передачи программе);
2. Разработка алгоритма программы (построение блок схемы, граф-схемы или текстовое или математическое описание решения);
3. Формализация алгоритма (запись алгоритма на языке программирования).
Создание текстового файла программы с расширением.asm (например my.asm). Отсутствие среды разработки позволяет программисту самостоятельно выбрать текстовый редактор для написания кода программы. Для этой цели подойдет любой текстовый редактор с нумерацией строк, мы рекомендуем редактор, встроенный в оболочку "FAR Manager".
4. Компиляция программы;
Компиляция - процесс перевода программы из текстового вида в машинный код. При использовании компилятора необходимо выполнить:
masm my.asm
т.е. запускаем компилятор masm и передаем с командной строки имя файла, содержащего программу. Если программа имеет синтаксические ошибки, компилятор выдаст сообщение об ошибке с указанием номера строки и описанием для каждой ошибки (нужно вернуться на этап №3 и исправить синтаксические ошибки).
В случае успешной компиляции будет создан файл, содержащий объектный код программы my.obj, который ещё не является исполняемым модулем.
5. Компоновка программы;
Компоновка - создание из файла объектного кода исполняемого модуля.
link my.obj
В качестве параметра компоновщик link принимает имя файла содержащего объектный код программы (в нашем случае - my.obj). В случае успешной компоновки будет создан исполняемый модуль my.exe
6. Запуск и тестирование исполняемого модуля программы.
На данном этапе необходимо проверить, соответствует ли написанная программа постановке задачи, сделанной нами на этапе №1. Неправильная
работа программы говорит об алгоритмической ошибке (семантическая ошибка), поэтому для успешного её устранения нужно вернуться на этап разработки алгоритма (этап №2).