Л. Е. ОЛЕЙНИК
ЯЗЫКИ
ПРОГРАММИРОВАНИЯ
Учебное пособие
Часть 2
ЛОГИЧЕСКИЕ ОПЕРАЦИИ. УСЛОВНЫЕ И БЕЗУСЛОВНЫЕ ПЕРЕХОДЫ, ОРГАНИЗАЦИЯ ЦИКЛОВ, ВЫЗОВ ПРОЦЕДУР, ИСПОЛЬЗОВАНИЕ СТЕКА
Омск Издательство СибАДИ
2006
ББК 32.973.2 УДК.681.3.06 О 53
Рецензенты:
зав. кафедрой кибернетики ОМГУ, доктор физ.-мат. наук, профессор А.К.Гуц,
зав. отделом программирования ЗАО «Автоматика-Э» М.И.Федосеев
Работа одобрена редакционно-издательским советом Сибирской государственной автомобильно-дорожной академии для специальности 075500 «Комплексное обеспечение информационной безопасности автоматизированных систем обработки информации и управления»
Олейник Л.Е.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ: Учебное пособие. Часть 2. Логические операции. Условные и безусловные переходы, организация циклов, вызов процедур, использование стека данных. − Омск: Изд-во СибАДИ, 2006.– 134с.
Учебное пособие является второй частью комплекта пособий из 15 частей по курсу «Языки программирования», изучаемому в СибАДИ на специальности 075500 «Комплексное обеспечение информационной безопасности автоматизированных систем обработки информации и управления».
Предназначается для использования:
–студентами очной формы обучения (для двух уровней подготовки – специалист и бакалавр), во-первых, при выполнении лабораторных работ по дисциплине «Языки программирования» в дисплейных классах (36 часов), во-вторых, при подготовке к практическим занятиям (10 часов) и, в-третьих, при выполнении индивидуальных заданий для самостоятельной работы (60 часов) в течение двух семестров;
–преподавателями при подготовке и проведении аудиторных занятий в дисплейном классе (практические занятия и лабораторные работы).
Может также использоваться студентами специальности 220200 «Автоматизированные системы обработки информации и управления» при изучении курса «Системное программное обеспечение», а также желающими самостоятельно изучить программирование на ассемблере.
Табл. 12. Ил. 2. Библиогр.: 6 назв.
ISBN 5-93204-259-1 |
© Олейник Л.Е., 2006 |
2
ОГЛАВЛЕНИЕ
Введение…………………………………………………………………4
1.Подготовка рабочего места к занятиям…………………………....7
2.Аудиторное занятие………………………………………………....8
3.Задание на программирование (общая часть)……………………10
4.Сведения, необходимые для выполнения лабораторной работы..16
5.Типичные ошибки при выполнении работы……………………..47
6.Примеры (тексты) программ………………………………………60
Приложение 2.1 Варианты формул для программирования…..…68
Приложение 2.2 Примеры лабораторной работы №2 ……………69
3
ВВЕДЕНИЕ
Данное учебное пособие включает:
−описания лабораторных работ, выполняемых на языке низкого уровня (язык ассемблера для микропроцессоров 8086 и 80386) под управлением операционных систем MS-DOS, Windows 95 (Windows 98 или
Windows 2000) и Linux;
−информацию для проведения практических занятий. Состоит из 15 частей, каждая из которых содержит:
–демонстрационные примеры, используемые преподавателем при проведении лабораторной работы в дисплейном классе (могут также использоваться при самостоятельном изучении);
–сведения, необходимые для выполнения лабораторной работы (используются также для подготовки к практическим занятиям);
–задание на программирование (общая часть);
–формулы вычислений или тексты индивидуальных заданий;
–требования к программному средству, в т.ч. указания, для каких процессора и операционной системы (ОС) оно разрабатывается, какие директивы и команды применяются, для какого режима работы процессора (реального или защищенного), какого типа (EXEили COM-) они должны быть, сколько модулей и сегментов должны содержать и т.п.;
–описание наиболее часто встречающихся при выполнении работы ошибок программирования;
–детальные ссылки на литературу для более подробного изучения;
–примеры (тексты) программ, разработанные в соответствии с требованиями и содержащие поясняющие комментарии.
Программное обеспечение, используемое при выполнении лабораторной работы в классе и индивидуального задания, приведено в подразделе 1.
Перечень частей:
№ |
Название части |
Рассматриваемые вопросы, тип программы, |
|
п/п |
|
|
количество модулей и операционная система |
1 |
Определение |
данных. |
Арифметические операции сложения, вычитания, |
|
Двоичная арифметика. |
умножения и деления (операции двоичной |
|
|
Экранные операции |
арифметики; вычисление по формуле; определение |
|
|
|
|
данных; логика и организация программ − условные |
|
|
|
и безусловные переходы и циклы; ввод с |
|
|
|
клавиатуры и вывод на экран). EXE-программа |
|
|
|
(один модуль). ОС – MS-DOS |
|
Логические |
операции. |
Арифметические и логические операции (И, ИЛИ, |
|
Условные и безуслов- |
НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ; вычисление по фор- |
|
|
|
|
4 |
|
|
|
|
|
|
Продолжение таблицы |
|
|
|
|
|||
№ |
Название части |
|
Рассматриваемые вопросы, тип программы, |
|||
п/п |
|
|
|
|
|
количество модулей и операционная система |
2 |
ные переходы, организа- |
муле; логика и организация программ – вызов |
||||
|
ция циклов, вызов про- |
процедур near и far; использование стека; |
||||
|
цедур, |
использование |
директивы extrn, public, global). EXE-программа |
|||
|
стека |
|
|
|
|
(два модуля). ОС – MS-DOS |
3 |
Сдвиговые |
|
операции, |
Арифметические и логические операции и сдвиги; |
||
|
данные со знаком и без |
логика и организация программ – циклы и |
||||
|
знака. Ввод-вывод на |
переходы; вызов процедур; использование стека; |
||||
|
диск |
|
|
|
|
включаемые файлы; ввод-вывод на диск. СОМ- |
|
|
|
|
|
|
программа. ОС – MS-DOS |
4 |
Использование |
макро- |
Вычисление по формулам и сдвиги. EXE-программа |
|||
|
сов и |
|
макрокоманд. |
(один модуль, использование макросов и |
||
|
Строковые |
команды |
и |
макрокоманд; строковые команды, команды |
||
|
команды |
|
манипуляции |
манипуляции флагами). ОС – MS-DOS |
||
|
флагами |
|
|
|
|
|
5 |
Использование условных |
Вычисление по формулам и сдвиги. EXE-программа |
||||
|
операторов |
ассемблиро- |
(один модуль, использование макросов, макроко- |
|||
|
вания. Директива equ |
|
манд и условных операторов ассемблирования; |
|||
|
|
|
|
|
|
директива equ). ОС – MS-DOS |
6 |
Способы передачи пара- |
Демонстрация и опробование способов передачи |
||||
|
метров |
процедурам |
в |
процедурам в модуле и между модулями: |
||
|
модуле и между моду- |
параметра(ов) и указателя – через регистр(ы), |
||||
|
лями |
|
|
|
|
общую ячейку, стек, в потоке кода. Передача |
|
|
|
|
|
|
фактических параметров макросам. Сохранение |
|
|
|
|
|
|
регистров в вызывающей и вызываемой процедурах. |
|
|
|
|
|
|
EXE-программа (два модуля; модели памяти – |
|
|
|
|
|
|
средняя и большая). ОС – MS-DOS |
7 |
Оптимизация програм- |
|
Минимизация объема программы (объем опера- |
|||
|
мы |
|
|
|
|
тивной памяти, занимаемой машинными командами, |
|
|
|
|
|
|
данными и стеком) либо времени выполнения про- |
|
|
|
|
|
|
граммы. Использование таблицы переходов, команд |
|
|
|
|
|
|
и возможностей МП Intel 80386. СОМили ЕХЕ- |
|
|
|
|
|
|
программа. ОС – MS-DOS |
8 |
Определение |
интервала |
Определение паузы (интервала времени) между |
|||
|
времени между события- |
событиями. Обработка прерываний, команды in и |
||||
|
ми. Обработка прерыва- |
out. EXE-программа. ОС – MS-DOS |
||||
|
ний, команды in и out |
|
|
|||
9 |
Графическое |
приложе- |
Вычисление по формуле (операции двоичной ариф- |
|||
|
ние для Windows. Вы- |
метики и логические операции, сдвиги; определение |
||||
|
числения, сдвиги; ввод с |
данных; логика и организация программ – условные |
||||
|
клавиатуры |
и |
вывод |
на |
и безусловные переходы и циклы; вызов процедур; |
|
|
экран |
|
|
|
|
ввод с клавиатуры и вывод на экран; использование |
5