WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

МИКРОПРОЦЕССОРНЫХ СИСТЕМ

Методические указания

к выполнению лабораторных работ

Для студентов, обучающихся по направлению подготовки

210100.62 «Электроника и наноэлектроника»

профиль «Промышленная электроника»

Составитель А. М. Кабышев

Владикавказ 2014

0

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«СЕВЕРО-КАВКАЗСКИЙ ГОРНО-МЕТАЛЛУРГИЧЕСКИЙ ИНСТИТУТ

(ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»

Кафедра промышленной электроники

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

МИКРОПРОЦЕССОРНЫХ СИСТЕМ

Методические указания к выполнению лабораторных работ Для студентов, обучающихся по направлению подготовки 210100.62 «Электроника и наноэлектроника»

профиль «Промышленная электроника»

Составитель А. М. Кабышев Допущено редакционно-издательским советом Северо-Кавказского горно-металлургического института (государственного технологического университета).

Протокол заседания РИСа № 2 от 18.02.2014 г.

Владикавказ УДК 681.3.068+800. ББК 32.973.26-018. К Рецензент:

доктор технических наук, профессор Северо-Кавказского горно-металлургического института (государственного технологического университета) Хмара В. В.

Программное обеспечение микропроцессорных систем:

К Методические указания к выполнению лабораторных работ для студентов, обучающихся по направлению подготовки 210100.62 – «Электроника и наноэлектроника» профиль «Промышленная электроника / Сост.: А. М. Кабышев; Северо-Кавказский горно-металлургический институт (государственный технологический университет). – Владикавказ: Северо-Кавказский горно-металлургический институт (государственный технологический университет). Изд-во «Терек», 2014. – 53 с.

Сборник содержит методические указания к шести лабораторным работам по курсу «Программное обеспечение микропроцессорных систем». Указания к каждой лабораторной работе имеют краткую теоретическую часть, описание лабораторного макета, возможные варианты заданий, контрольные вопросы.

Макеты к лабораторным работам выполнены на базе учебного микропроцессорного комплекта (УМК) (паспорт РРЭ.059.004 ПС) и персонального компьютера. Основной целью лабораторных работ, приведенных в сборнике, является изучение основ разработки программного обеспечения микропроцессорных систем.

УДК 681.3.068+800. ББК 32.973.26-018. Редактор: Хадарцева Ф. С.

Компьютерная верстка: Куликова М. П.

Составление. ФГБОУ ВПО «Северо-Кавказский горно-металлургический институт (государственный технологический университет)», Кабышев А. М., составление, Подписано в печать 05.08.2014. Формат 60х84 1/16. Бумага офсетная.

Гарнитура «Таймс». Печать на ризографе. Усл. п.л. 3,08. Уч.-изд. л. 2,04.

Тираж 15 экз. Заказ №. Северо-Кавказский горно-металлургический институт (государственный технологический университет). Издательство «Терек».

Отпечатано в отделе оперативной полиграфии СКГМИ (ГТУ).

362021, г. Владикавказ, ул. Николаева, 44.

Оглавление Лабораторная работа № ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРА СЕРИИ КР580... Лабораторная работа №

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

ДЛЯ IBM PC

Лабораторная работа № УПРАВЛЕНИЕ ПОРТАМИ КОМПЬЮТЕРА

Лабораторная работа №

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА АССЕМБЛЕРЕ

В WINDOWS

Лабораторная работа № ОТЛАДЧИК ПРОГРАММ ДЛЯ МИКРО-ЭВМ КР1816 (FD48)......... Лабораторная работа №

СИСТЕМА КОМАНД КОНТРОЛЛЕРОВ СЕРИИ PIC

(PIC16F84A)

ПРОГРАММИРОВАНИЕ МИКРОПРОЦЕССОРА

1. Цель работы Изучение основных принципов разработки программного обеспечения для микропроцессорных систем, построенных на основе микропроцессора серии КР580 (Intel8080). Изучение средств отладки программного обеспечения.

2. Основные теоретические положения Микропроцессор (МП) КР580ВМ80А представляет собой большую интегральную схему (БИС), выполненную по n-МОП технологии и является одной из микросхем, входящих в состав серии КР580. Кроме микропроцессора в эту серию входят БИС, выполняющие функции системного контроллера, генератора, таймера, адаптеров для управления клавиатурой, монитором и устройствами ввода/вывода. Часто микропроцессор КР580ВМ80А сокращенно называют КР580, так как он является основным в составе этой серии.

Микропроцессор КР580 представляет собой функционально законченный однокристальный универсальный 8-разрядный микропроцессор с фиксированной системой команд. Структурная схема микропроцессора КР580 (рис. 1.1) состоит из двух частей: операционной и управляющей. Обе части расположены на одном кристалле.

Внутренняя шина данных – служит для передачи данных внутри процессора.

А – регистр-накопитель.

Т – теневой регистр, недоступен пользователю.

АЛУ – арифметико-логическое устройство, выполняет арифметические и логические операции.

F – регистр флагов (признаков).

ДК – десятичный корректор. Преобразует двоичный код в двоичнодесятичный (BCD-формат).

Мультиплексор (М) – в зависимости от входного сигнала включает доступ к тому или иному регистру.

PC – счетчик команд.

SP – указатель стека.

РА – регистр адреса.

ИНК/ДЕК – инкрементор/декрементор.

Регистры процессора (B, C, D, E, H, L) называются регистрами общего назначения и используются для хранения информации. Парные регистры могут использоваться как единое целое для хранения адреса.

Шина адреса служит для передачи адреса ячейки памяти или устройства ввода/вывода.

Регистр команд (РК) служит для хранения кода выполняемой команды.

Управляющий автомат – устройство управления вырабатывает управляющие сигналы, необходимые для выполнения команды.

Арифметико-логическое устройство (АЛУ) Операционная часть микропроцессора построена на базе 8-разрядного АЛУ, на два входа которого подключены два 8разрядных буферных регистра Т и А. АЛУ выполняет арифметические и логические операции над 8-разрядными двоичными числами и представляет собой комбинационно-логическую схему. При выполнении операций в регистре флагов (F) формируются флажки, использование которых позволяет разветвлять алгоритм программы. АЛУ также может выполнять операции сдвига на один разряд вправо или влево.

В состав МП входит комбинационная схема десятичной коррекции ДК, которая под воздействием специальной команды DAA преобразует результат сложения из двоичной формы в двоично-десятичную, а также выполняет более сложные операции (умножение, деление, вычисление элементарных функций).

Блок регистров Блок регистров содержит 8-разрядные программно-доступные регистры: А – регистр-аккумулятор; В, С, D, Е, Н, L – регистры общего назначения (РОН); F – регистр признаков-флагов; 16-разрядные специализированные регистры; программный счетчик команд СК (РС), регистр-указатель стека УС (SР); сдвоенный регистр косвенного адреса HL. А также имеются непосредственно недоступные программе регистры: 8-разрядный регистр команд (РК); 8-разрядные регистры временного хранения Т, W, Z; 16-разрядный регистр адреса РА.

Блок РОН содержит шесть 8-разрядных регистров, обозначаемых буквами В, С, D, E, H, L, которые могут использоваться как одиночные 8-разрядные регистры и как регистровые 16-разрядные пары ВС, DE, HL. Объединение регистров в пары дает возможность хранить 16-разрядные двоичные числа.

РОН используются для хранения операндов, промежуточных и конечных результатов, а также адресов при косвенной адресации данных.

Регистр А используется в качестве источника одного из операндов и приемника результата выполнения операции. Аккумулятор строится на основе двухступенчатых триггеров, что позволяет ему одновременно быть регистром-источником операнда и регистромприемником результата выполнения операции. Использование регистра А и РОН позволяет при выполнении команд уменьшить количество обращений к памяти и этим самым повысить быстродействие микропроцессора.

В блоке регистров микропроцессора имеется схема инкремента/декремента, которая без привлечения АЛУ выполняет операцию прибавления/вычитания единицы над содержимым регистров. При выполнении операций в микропроцессоре возникает потребность в кратковременном хранении некоторых операндов и результатов выполнения операций. Для этого служат регистры временного хранения данных T, W, Z. Они являются программно недоступными и служат для хранения данных при выполнении некоторых операций. Регистры W и Z используются в командах ввода/вывода при работе с внешними устройствами (портами).

В состав блока регистров входит регистр-защелка адреса памяти РА. Любая пара регистров (ВС, DE, HL) может быть использована для задания адресов команд и данных в программе. Такой адрес под воздействием соответствующих команд может быть загружен в регистрзащелку РА и модифицирован (посредством схемы инкремента/декремента) в процессе загрузки. Регистр-защелка РА передает адрес в буфер ША и далее в шину адреса.

Регистр команд РК служит для запоминания первого байта команды на все время ее выполнения. Код команды из этого регистра используется устройством управления для выработки последовательностей сигналов как для управления внутренними узлами микропроцессора, так и для управления внешними устройствами (память, порты).

Буферные схемы Буфер шины данных (ШД) осуществляет связь микропроцессора с системной шиной данных. Через буфер передается обрабатываемая информация. Выводы буфера ШД образуют восьмиразрядную шину данных. Буфер шины адреса (ША) служит для передачи адресов. Его выводы образуют 16-разрядную шину адреса. Выводы буферных схем могут принимать состояние высокого сопротивления (Z-состояние).

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

Устройство управления Устройство управления вырабатывает управляющие сигналы, необходимые для выполнения команды. В состав схемы управления входят устройства:

- дешифратор кода команды;

- схема формирования машинных тактов и циклов;

- схема выборки РОН;

- схема анализа переходов, которая анализирует состояние триггеров регистра признаков F при выполнении команд условных переходов;

- схема формирования байта состояния;

- схема анализа прерываний;

- схема анализа готовности микропроцессора;

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

Регистр признаков F содержит признаки выполнения операций.

Формат регистра F приведен на рис. 1.2. В регистре F фиксируются признаки (флажки):

– CY – признак переноса/займа. Если при выполнении команды возник перенос из старшего разряда или заем в старший разряд, то CY = 1, иначе CY = 0;

– Р – признак паритета (признак четности). Если число единиц в байте результата четно, то Р = 1, иначе Р = 0;

– АС – признак вспомогательного переноса. Если есть перенос из третьего бита в четвертый, то АС = 1, иначе АС = 0;

– Z – признак нуля. Если результат равен нулю, то Z = 1, иначе Z = 0;

– S – признак «знака» принимает значение старшего разряда результата.

Микропроцессор – программно управляемое устройство функции, которого зависят от программы, расположенной в постоянном запоминающем устройстве (ПЗУ) системы. Для разработки программного обеспечения используется машинно-ориентированный язык (Ассемблер). Программа, написанная на языке Ассемблера, должна быть оттранслирована (переведена) на язык, понятный микропроцессору, в коды. Коды заносятся в ПЗУ системы с помощью специализированного устройства, которое называется программатор.

Система основных команд приведена в таблице 1.1.

В таблице приняты следующие обозначения: data – 8-разрядное двоичное число; R – один из регистров общего назначения (A, B, C, D, E, H, L); M – ячейка памяти; add – адрес (16-разрядное двоичное число); RR – регистровая пара (BC, DE, HL); PSW – два регистра A и F; N – вектор прерывания (0–7); port – адрес порта (восьмиразрядное двоичное число).

При формировании кода команды необходимо учитывать коды применяемых в команде регистров: код регистра А – 111; код регистра B – 000; код регистра C – 001; код регистра D – 010; код регистра E – 011; код регистра H – 100; код регистра E – 101; код ячейки памяти М – 110. Коды регистровых пар : BC – 00; DE – 01; HL – 10;

PSW – 11.

3. Описание среды отладки программ микропроцессора КР В лабораторной работе для отладки и выполнения программ используется учебный микропроцессорный комплект (УМК), а также программный продукт Emulator КР580. УМК представляет собой микропроцессорную систему, построенную на базе микропроцессора КР580ВМ80А. В состав УМК входит клавиатура и цифровой дисплей.

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

Программы необходимо располагать в памяти УМК, начиная с адреса 0800Н. Программный продукт Emulator КР580 представляет из себя виртуальную ЭВМ (виртуальный учебный микропроцессорный комплект).

Для работы с учебным микропроцессорным комплектом и программным продуктом Emulator KP580 не требуется специальное обучение, достаточно ознакомиться с краткой инструкцией по эксплуатации.

4. Задания к лабораторной работе А) Разработать Ассемблер программу и таблицу прошивки ПЗУ для реализации алгоритма: десять ячеек памяти заполнить числами, отличающимися друг от друга на единицу.

Б) Разработать Ассемблер программу и таблицу прошивки ПЗУ для реализации алгоритма: найти сумму десяти чисел (двоичных, десятичных), расположенных в памяти.

В) Разработать Ассемблер программу и таблицу прошивки ПЗУ для реализации алгоритма: найти разность десяти чисел, используя команду ADD (заменить вычитание сложением, представляя отрицательные числа в дополнительном коде).

Г) Разработать Ассемблер программу и таблицу прошивки ПЗУ для реализации алгоритма: найти наибольшее из чисел, расположенных в памяти.

Д) Разработать Ассемблер программу и таблицу прошивки ПЗУ для реализации алгоритма: подсчитать количество единиц в числе.

5. Порядок выполнения работы Составить программу на языке Ассемблера и в кодах микропроцессора К580, реализующую заданный алгоритм. Ввести программу в «память» микропроцессорной системы и отладить. Составить отчет.

6. Порядок оформления отчета Отчет должен содержать текст разработанной программы.

7. Контрольные вопросы 1. Назначение, устройство, принцип работы микропроцессора.

2. Команды микропроцессора.

3. Назначение и взаимосвязь команд программы.

1. Новожилов О. П. Основы микропроцессорной техники: Учебное пособие. В 2 т. М.: ИП РадиоСофт, 2007. 432 с.

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

ДЛЯ IBM PC

1. Цель лабораторной работы Изучение принципов программирования на языке Ассемблера для IBM PC c использованием программного продукта MASM, функционирующего в среде MS DOS и Win95. В данной лабораторной работе изучаются основы разработки программного обеспечения для компьютерных игр и драйверов для управления аппаратными средствами компьютера.

2. Основные теоретические положения Компьютер представляет собой микропроцессорную систему, которая может быть использована для управления разнообразными технологическими процессами. Для этого необходимо соответствующее программное обеспечение. Язык Ассемблера предоставляет для разработки программного обеспечения неограниченные возможности.

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

Память и регистры На рис. 2.1 приведена структурная схема памяти компьютера.

Память имеет сегментную структуру.

1. Сегмент кода. Сегмент содержит машинные команды. Первая выполняемая команда находится в начале этого сегмента, и операционная держит данные и константы, необходимые для работы программы. Регистр сегмента данных (DS) адресует данный сегмент.

3. Сегмент стека. Стек содержит адреса возврата для программы при возврате в операционную систему и адреса возврата для подпрограмм. Регистр сегмента стека SS адресует данный сегмент.

Существует дополнительный сегмент, адресуемый регистром ES, который предназначен для специального использования.

При программировании на языке Ассемблера используются двухбайтовые регистры общего назначения: AX, BX, CX, DX, состоящие из старшего (H) и младшего (L) регистров.

Регистр AX (AX = AH + AL) выполняет функции «аккумулятора»

и применяется в командах ввода-вывода в арифметических и логических операциях.

Регистр BX (BX = BH + BL) является базовым регистром, используется для расширения адресации и при выполнении вычислений.

Регистр CX (CX = CH + CL) выполняет функции счетчика.

Регистр DX (DX = DH + DL) является регистром данных. Используется в некоторых командах ввода-вывода.

Регистровые указатели: SP и BP. Обеспечивают системе доступ к данным в сегменте стека. Индексные регистры: SI и DI. Применяются для расширенной адресации и в операциях сложения и вычитания.

Регистр командного указателя: IP. Содержит смещение на команду, которая должна быть выполнена.

Регистр флагов содержит следующие флажки: O (переполнение), D (направление), I (прерывание), T (пошаговый режим), S (знак), Z (ноль), A (перенос из 3-го бита), P (четность), C (перенос).

Комментарии в программах. Комментарии в программе улучшают ее понимание. Комментарии начинаются с символа « точка с запятой». Комментарии могут содержать любые символы.

Формат кодирования. Формат кодирования команд Ассемблера имеет следующий вид: «метка команда операнды». Максимальная длина строки – 132 символа.

Удобно работать со строками в 80 символов, что соответствует ширине экрана.

Директивы. Ассемблер имеет ряд операторов, которые позволяют управлять процессом ассемблирования. Они называются псевдокомандами или директивами. Ниже приведены основные директивы:

– Директивы управления листингом: PAGE и TITLE.

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

Пример: PAGE 60, 132.

Количество строк в странице может быть от 10 до 255, а количество символов в строке – от 60 до 132.

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

Директива SEGMENT. Директива служит для описания сегмента и имеет следующий формат:

Имя сегмента должно быть уникальным и соответствовать соглашением для имен в Ассемблере. Директива ENDS означает конец сегмента. Обе директивы должны иметь одинаковые имена. Директива SЕGMENT может иметь три типа параметров: выравнивание, объединение и класс.

1. Выравнивание. Определяет границу начала сегмента. Часто используется PARA, при этом сегмент устанавливается на границу параграфа. В этом случае начальный адрес кратен 16, т. е. имеет шестнадцатеричный адрес nnn0. При отсутствии этого операнда ассемблер принимает по умолчанию PARA.

2. Объединение. Этот элемент определяет, объединяется ли данный сегмент с другими сегментами в процессе компоновки после ассемблирования. Возможны следующие типы объединения: STACK, COMMON, PUBLIC, MEMORY. Сегмент стека определяется следующим образом: имя SEGMENT PARA STACK Если отдельно ассемблированные программы должны объединяться компоновщиком, то можно использовать: PUBLIC, COMMON, MEMORY. Если программа не должна объединяться с другими программами, то указание этих типов должно быть опущено.

3. Класс. Данный элемент, заключенный в апострофы, используется для группирования сегментов при компоновке: имя SEGMENT PARA STACK ‘Stack’ – Директива PROC. Сегмент кода содержит выполняемые команды программы. Кроме того, этот сегмент включает в себя одну или несколько процедур, определенных директивой PROC. Сегмент, содержащий только одну процедуру, имеет следующий вид:

имя сегмента SEGMENT PARA имя процедуры ENDP имя сегмента ENDS Операнд FAR указывает загрузчику DOS, что начало данной процедуры, является точкой входа для выполнения программы. Директива ENDP определяет конец процедуры. Команда RET завершает выполнение программы и передает управление в DOS.

– Директива ASSUME. Процессор использует регистр SS для адресации сегмента стека, регистр DS для адресации сегмента данных и регистр CS для адресации сегмента кода. Ассемблеру необходимо сообщить назначение каждого сегмента:

имя сег. кода Здесь указано, что имя сегмента стека должно ассоциироваться с регистром SS и т. д. Регистр ES также может присутствовать среди операндов.

– Директива END. Директива ENDS завершает сегмент, а директива ENDP завершает процедуру. Директива END полностью завершает всю программу:

Операнд может быть опущен, если программа не предназначена для выполнения (если программа должна быть скомпонована с другим главным модулем).

– Директивы определения данных. Для определения элементов данных имеются следующие директивы: DB (байт), DW (слово), DD (двойное слово), DQ (учетверенное слово), DT (десять байт).

Выражение может содержать константу:

При неопределенных значениях ставится знак вопроса:

Выражение может содержать несколько констант:

При этом ссылка по имени FJ1 указывает на первую константу, 11, по FJ1+1 – на вторую, 14. Например, команда MOV AL, FJ1+ загружает в регистр AL число 42 (2AH).

Допустимо повторение константы:

DW 10 DUP(?); Десять неопределенных слов DB 5 DUP(42); Пять байт, содержащих 2АН.

Директива EQU. Определяет значение, которое можно использовать в других командах.

Теперь, в какой бы команде или директиве ни использовалось слово TIM, ассемблер подставит вместо него значение 10. Так при выполнении команды MOV CX, TIM в регистр CX будет занесено число 10.

Прерывания BIOS и DOS Для выполнения ввода и вывода используется команда INT (прерывание). Существуют разные способы, позволяющие указать системе, какие действия и на каком устройстве необходимо их выполнить.

Все необходимые экранные и клавиатурные операции можно выполнять с помощью команды INT 10H, которая передает управление непосредственно в BIOS (Basic Input/Output System). BIOS находится в ROM и управляет всеми прерываниями в системе. Для выполнения некоторых более сложных операций используется прерывание INT 21H, которое сначала передает управление в DOS.

Основные прерывания BIOS:

– INT 05H – печать экрана. Выполняет вывод содержимого экрана на печатающее устройство.

– INT 10H – обеспечивает экранные и клавиатурные операции.

– INT 11H – определяет наличие различных устройств в системе и результат помещает в АХ.

– INT 12H – запрос размера физической памяти. Помещает в АХ размер памяти в килобайтах, например 200Н соответствует 512Кбайт.

– INT 13H – обеспечивает операции ввода-вывода для дискет и винчестера.

– INT 14H – обеспечивает последовательный ввод-вывод через порт RS232. Регистр DX должен содержать номер 0 или 1 адаптера стыка RS232. Регистр АН определяет направление передачи информации.

– INT 15H – обеспечивает операции ввода-вывода для кассетного магнитофона.

– INT 16H – ввод с клавиатуры.

– INT 17H – вывод на принтер.

– INT 18H – вызывает интерпретатор с языка Бейсик, находящийся в ROM.

– INT 19H – перезапуск системы.

– INT 1АН – запрос и установка текущего времени и даты.

Основным прерыванием является INT 10H. Рассмотрим примеры использования этого прерывания для управления экраном дисплея. В регистре АН устанавливается код, определяющий функции прерывания. АН=0: Установка режима. Переключает монитор в текстовый или графический режим.

Содержимое регистра AL может быть следующим:

00 – 40х25 черно-белый текстовый режим 01 – 40х25 стандартный 16-цветовый текстовый режим 02 – 80х25 черно-белый текстовый режим 03 – 80х25 стандартный 16-цветовый текстовый режим 04 – 320х200 стандартный 4-цветовый графический 05 – 320х200 черно-белый графический режим 06 – 640х200 черно-белый графический режим 07 – 80х25 черно-белый стандартный монохромный 0D – 320х200 16-цветовый графический режим (EGA) 0E – 640х200 16-цветовый графический режим (EGA) 0F – 640х350 черно-белый графический режим (EGA) 10 – 640х350 64-цветовый графический режим (EGA) Установка стандартного 16-цветового текстового режима выполняется следующим образом:

Применив прерывание INT 11H можно определить режим монитора. В регистре АХ 5 и 4 биты указывают на видеорежим:

01 – 40х25 черно-белый режим в цветном адаптере 10 – 80х25 черно-белый режим в цветном адаптере 11 – 80х25 черно-белый режим в черно-белом адаптере.

АН=01: Установка размера курсора. Можно установить любой размер курсора по вертикали: от 0 до 13 для монохромных и EGAмониторов и от 0 до 7 для большинства цветных мониторов.

MOV AH,01 ;Установить размер курсора MOV CH,00 ;Верхняя линия сканирования MOV CL,13 ;Нижняя линия сканирования INT 10H ;Вызвать BIOS AH=02: Установка позиции курсора.

AH=03: Определение положения курсора.

Пример: MOV AH, После выполнения этих команд в регистре DH будет находиться номер строки, в регистре DL – номер столбца. В регистре СН – верхняя линия сканирования, а в регистре CL – нижняя линия сканирования.

АН=04: Используется в графическом режиме для определения положения светового пера.

АН=05: Выбор активной страницы. В текстовом режиме с форматом экрана 80х25 может быть 4 страницы (0–3), а при 40х25 – 8 страниц (0–7).

Пример: MOV AH, АН=06: Прокрутка экрана вверх. В текстовом режиме установка в регистре AL значения 00 приводит к полной прокрутке вверх всего экрана, очищая его пробелами. Установка ненулевого значения в регистре AL определяет количество строк прокрутки экрана вверх.

Верхние строки уходят с экрана, а чистые строки вводятся снизу.

Прокрутка экрана на одну строку имеет вид:

MOV AX,0601H MOV BH,07 ; Атрибут: нормальный, черно-белый MOV DX,184FH ; до 24,79 (весь экран) Регистр ВН содержит атрибут для нормального или инвертированного отображения, мигания, установки цвета и т. д. Байт-атрибут имеет следующий вид:

Буквы RGB соответствуют битовым позициям, управляющим соответственно красным, зеленым и синим лучом монитора.

Некоторые атрибуты приведены ниже:

– 00Н – неотображаемый (для паролей), – 07Н – белый по черному, нормальный, – 87Н – белый по черному, мигание, – 0FH – белый по черному, яркий, – 70Н – черный по белому, инверсия, – F0H – черный по белому, инверсия, мигающий.

АН=07: Прокрутка экрана вниз. Назначение регистров аналогично прокрутке вверх.

АН=08: Чтение атрибута/символа в текущей позиции курсора. В регистре ВН указывается страница. Функция заносит в AL значение символа, а в регистр АН – его атрибут.

АН=09: Вывод атрибута/символа в текущую позицию курсора.

Пример вывода на экран пяти мигающих «сердечек» выглядит так:

MOV AL,03H ;Черви (карточная масть) MOV BL,F0H ;Мигание, инверсия MOV CX,05 ;Пять раз AH=0A: Вывод символа в текущую позицию курсора. В отличии от 09 эта функция не устанавливает атрибут. Пример:

MOV BH, страница MOV CX, повторение Управление цветом в текстовом режиме. Три основных цвета – красный, зеленый и синий. Их можно комбинировать для получения восьми цветов. Используя два уровня яркости для каждого цвета можно получить 16 цветов: черный – 0000; синий – 0001; зеленый – 0010; голубой – 0011; красный – 0100; сиреневый – 0101; коричневый – 0110; белый – 0111; серый – 1000; ярко-синий – 1001; ярко-зеленый – 1010; ярко-голубой – 1011; ярко-красный – 1100; Ярко-сиреневый – 1101; желтый – 1110; ярко-белый – 1111.

Для установки цвета можно использовать в команде INT 10H функции АН=06, АН=07 и АН=09. Например, для вывода пяти звездочек ярко-зеленого цвета на ярко-сиреневом фоне возможна следующая программа:

MOV AH, MOV AL,’*’ MOV BL,DAH ;D- фон, А- цвет символов MOV CX,05 ;Количество символов Ввод с клавиатуры по команде BIOS INT 16H. Код в регистре АН обеспечивает следующие функции ввода:

АН=00: Чтение символа. Функция помещает в AL очередной ASCII-символ, введенный с клавиатуры, и устанавливает скан-код в регистре АН. Если нажата одна из специальных клавиш (F1), то в AL заносится 00.

АН=01: Определение наличия введенного символа. Функция сбрасывает флаг нуля, если имеется символ для чтения с клавиатуры.

Очередной символ и скан-код будут помещены в регистры AL и АН соответственно.

АН=02: Определение текущего состояния клавиатуры.

Клавиатура содержит три типа клавиш:

1. Символьные.

2. Функциональные: Home, End, Return, Del, Ins, PgUp, PgDn, 3. Управляющие.

Каждая клавиша имеет скан-код от 01Н до 53Н. Они позволяют определить, какая клавиша нажата. Для запроса на ввод одного символа с клавиатуры, необходимо в АН записать 00 и выполнить INT 16H.

Например, если будет нажата клавиша «А», клавиатура пошлет в компьютер два элемента информации:

1. ASCII-код символа А(41Н) в регистр AL.

2. Скан-код для клавиши А(1ЕН) в регистр АН.

Если нажать функциональную клавишу, например, Ins, то клавиатура выполнит:

1. Нуль в регистр AL.

2. Скан-код для Ins(52H) в регистр АН.

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

MOV AH, CMP AL,00 ;Функциональная клавиша?

Скан-коды некоторых клавиш:

Пример программы для установки курсора в строку 0 и столбец при нажатии Home:

MOV AH, CMP AL, JNE exit CMP AH,47H JNE exit MOV AH, MOV BH, MOV DX, Прерывания DOS Основным прерыванием является INT 21H. Код выполняемой функции заносится в регистр АН:

00 – завершение программы; 01 – ввод символа с клавиатуры с эхом на экран; 02 – вывод символа на экран; 03 – ввод символа из асинхронного коммуникационного канала; 04 – вывод символа на асинхронный коммуникационный канал; 05 – вывод символа на печать; 06 – прямой ввод с клавиатуры и вывод на экран; 07 – ввод с клавиатуры без эха и без проверки Ctrl/Break; 08 – ввод с клавиатуры без эха с проверкой Ctrl/Break; 09 – вывод строки символов на экран; 0А – ввод с клавиатуры с буферизацией; 0В – проверка наличия ввода с клавиатуры; 0С – очистка буфера ввода с клавиатуры и запрос на ввод; 0D – очистка диска; 0Е – установка текущего дисковода; 0F – открытие файла через блок управления файлом (FCB); 10 – закрытие файла через FCB; 11 – начальный поиск файла по шаблону;

12 – поиск следующего файла по шаблону; 13 – удаление файла с диска; 14 – последовательное чтение файла; 15 – последовательная запись файла; 16 – создание файла; 17 – переименование файла.; 18 – внутренняя операция DOS; 19 – определение текущего дисковода; 1А – установка области передачи данных; 1В – получение таблицы FAT для текущего дисковода; 1С – получение FAT для любого дисковода; 21 – чтение с диска с прямым доступом; 22 – запись на диск с прямым доступом; 23 – определение размеров файла; 24 – установка номера записи для прямого доступ; 25 – установка вектора прерывания; 26 – создание программного сегмента; 27 – чтение блока записей с прямым доступом; 28 – запись блока с прямым доступом; – преобразование имени файла во внутренние параметры; 2А – получение даты (СХ – год, DH – месяц, DL – день); 2В – установка даты;

2С – получение времени (СН – час, CL – мин, DH – с, DL – 1/100 с);

2D – установка времени.

Операции ввода-вывода в DOS при использовании прерывания INT 21H Код функции устанавливается в регистре АН:

АН=01: Ввод с клавиатуры с эхо-отображением. Функция заносит значение в регистр AL. Если содержимое AL не равно нулю, то оно представляет собой стандартный ASCII-символ (букву или цифру).

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

АН=02: Вывод символа. В регистр DL предварительно заносится код символа.

АН-08: Ввод с клавиатуры без эхо-отображения.

АН-0В: Проверка состояния клавиатуры. Если ввод с клавиатуры возможен, в AL заносится FF, иначе 00.

Вывод на экран в базовой версии DOS $ – ограничитель, определяет конец сообщения. Он может быть установлен в конце символьной строки, как показано в примере, или может задаваться следующим оператором: DB ‘$’ Ввод с клавиатуры в базовой версии DOS Пример: NAME LABEL BYTE ;Список параметров Здесь LABEL – директива с атрибутом BYTE. Т. е список параметров имеет байтовую структуру. Первый байт содержит максимальную длину вводимых данных, возможное максимальное значение – FF.

Второй байт служит для занесения в него действительного числа введенных символов. Начиная с третьего байта, располагаются введенные символы. Команда INT ожидает, пока пользователь не введет текст, проверяя, чтобы число введенных символов не превышало значения, указанного в списке параметров. Для указания конца ввода, пользователь нажимает Enter, код этой клавиши (0D) также заносится в поле ввода (NAMEF). Если было введено слово BROWN, то список параметров будет содержать информацию:

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

1. Низкое разрешение обеспечивает вывод 100 строк по 160 точек (т. е четыре бита на точку).

2. Среднее разрешение для стандартной цветной графики обеспечивает 200 строк по 320 точек. Каждый байт представляет четыре точки (т. е два бита на точку).

3. Высокое разрешение обеспечивает 200 строк по 640 точек. Высокое разрешение достигается только в черно-белом режиме.

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

Для каждой точки возможны четыре цвета, от 0 до 3. Это обеспечивается тем, что двух-битовая точка имеет четыре комбинации значений битов: 00, 01, 10, 11. Можно выбрать значение 00 для любого из 16 возможных цветов фона или выбрать значения 01, 10, и 11 для одной из двух палитр. Каждая палитра имеет три цвета:

Для выбора цвета палитры и фона используется INT 10H. Если выбраны фон желтого цвета и палитра 0, то возможны следующие цвета точки: желтый, зеленый, красный и коричневый. Байт, содержащий значение 10101010, соответствует красным точкам. Если выбрать цвет фона синий и палитру 1, то возможны цвета: синий, голубой, сиреневый и белый. Байт, содержащий значение 00011011, отображает синюю, голубую, сиреневую и белую точки.

Прерывание INT 10H для графики Код в регистре АН определяет функции:

АН=00: Установка графического режима.

АН=0В: Установка цветовой палитры. Число в регистре ВН определяет назначение регистра BL.

ВН=00 выбирает цвета фона и бордюра в соответствии с содержимым регистра BL. Цвет фона от 1 до 16 соответствует шестнадцатеричным значениям 0т 0 до F.

BH=01 выбирает палитру соответственно содержимому регистра BL (0 или 1):

AH=0CH: Вывод точки на экран. Для разрешения 320х200 в регистр DX можно загрузить вертикальную координату точки (от 0 до 199), а в регистр CX – горизонтальную координату (от 0 до 319). В регистр AL заносится цвет точки (от 0 до 3):

AH=0DH. Чтение точки с экрана. Позволяет определить цвет точки. В регистры DX и СХ необходимо записать координаты точки.

Функция возвращает цвет точки в регистр AL.

Печать под управлением базовой версии DOS Для печати в базовой версии DOS необходимо установить в регистре АН код функции 05, а в регистре DL – распечатываемый символ и выполнить команду INT 21H:

Ниже показан пример печати полной строки. В регистр SI загружается начальный адрес области HEADG, а в регистр СХ – длина этой области. В цикле выделяется очередной символ из области HEADG и выводится на принтер. Так как первый символ области HEADG – «прогон страницы», а последние два – «перевод строки», то заголовок печатается в начале новой страницы и после него следует двойной интервал:

HEADG DB 0CH, ‘Industrial Bicycle Mfrs’, 0DH, 0AH, 0AH Пока принтер не включен, выдается сообщение “Out of paper”.

Для прекращения печати можно нажать Ctrl/Break.

Печать с помощью BIOS INT 17H Выполняемые операции зависят от содержимого регистра АН:

АН=00: Операция выполняет печать символа. Можно использовать три принтера с номерами 0, 1, 2 (стандартное значение 0). Пример:

АН=01: Инициализация порта печатающего устройства:

Это операция выполняет прогон страницы.

АН=02: Чтение состояния порта принтера:

TEST AH,00101001B ;Принтер готов?

Функции 01 и 02 определяют состояние принтера. При этом информация о состоянии заносится в регистр АН. Состояние бит регистра АН: 7 – не занято, 6 – подтверждение от принтера, 5 – конец бумаги, 4 – устройство выбрано, 3 – ошибка ввода-вывода, 0 – таймаут.

Подготовка программы Пользуясь любым текстовым редактором ввести программу на языке Ассемблера и присвоить ей имя с расширением ASM. Для выполнения программы ее сначала необходимо ассемблировать и провести компоновку, пользуясь программой MASM.EXE. Шаг ассемблирования включает в себя трансляцию исходной программы в объектный код и генерацию OBJ-модуля. Компоновка выполняется с помощью программы LINK, которая преобразует OBJ-модуль в исполняемый EXE-модуль.

Пример программы Приведенная ниже программа обеспечивает ввод с клавиатуры до 30 имен, сортировку их в алфавитном порядке и вывод на экран отсортированного списка имен.

TITLE NMSORT (EXE) Ввод и сортировка имен STACK SEGMENT PARA STACK ‘Stack’

STACK ENDS

DATASG SEGMENT PARA ‘Data’ CRLF DB 13, 10, ‘$’ ENDADDR DW ?

MESSG1 DB ‘Name?’, ‘$’ NAMECTR DB NAMETAB DB 30 DUP(20 DUP(‘ ‘)) ;Таблица имен NAMESAV DB 20 DUP(?), 13, 10, ‘$’ SWAPPED DB

DATASG ENDS

CODESG SEGMENT PARA ‘Code’

BEGIN PROC FAR

ASSUME

CS:CODESG,DS:DATASG,SS:STACK,ES:DATASG

PUSH DS

PUSH AX

MOV AX,DATASG

LEA DI,NAMETAB

BEGIN ENDP

B10READ PROC имени длину B20: MOV NAMEFLD[BX],20H;Пробел B10READ ENDP D10STOP PROC

LES SI,NAMEFLD

D10STOP ENDP ; Сортировка имен в таблице G10SORT PROC

MOV ENDADDR,DI

LEA SI,NAMETAB

G10SORT ENDP H10XCHG PROC

LEA DI,NAMESAV

элемент элемент на место меньшего

LEA SI,NAMESAV

элемент на место большего H10XCHG ENDP K10DISP PROC

LEA SI,NAMETAB

K20: LEA DI,NAMESAV ;Начальный адрес таблицы

REP MOVSV

LEA DX,NAMESAV

K10DISP ENDP

CODESG ENDS

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

1. Вывести на экран монитора заданный символ.

2. Управление цветом (изменять цвет символа и фона).

3. Вывести на экран заданный текст.

4. Выход из программы при нажатии клавиши home.

5. Вывод на экран соответствующих символов нажатой клавиши.

6. Перемещать по экрану «смайлик» нажатием клавиш.

4. Порядок выполнения лабораторной работы – Реализовать заданный алгоритм на языке Ассемблера.

– Используя текстовый редактор, ввести программу.

– Провести ассемблирование и компоновку программы, пользуясь программой MASM.EXE. и LINK.EXE.

– Выполнить и отладить программу.

Составить отчет.

5. Порядок оформления отчета Отчет должен содержать текст разработанной программы.

6. Контрольные вопросы 1. Директивы языка Ассемблера и их назначение.

2. Скан-код и его назначение.

3. Ассемблирование и компоновка программы.

1. Юров В. И. Assembler: Практикум. СПб.: Питер, 2006. 399 с.

2. Пирогов В. Ю. Ассемблер и дизассемблирование. СПб.: БХВПетербург, 2006. 464 с.

УПРАВЛЕНИЕ ПОРТАМИ КОМПЬЮТЕРА

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

Изучаются основы схемных решений подключения объектов управления к LPT-порту компьютера и основы разработки программного обеспечения.

2. Основные теоретические положения Эффективное управление технологическими процессами невозможно без применения микропроцессорной техники. Современный компьютер представляет собой высокоорганизованную микропроцессорную систему, предназначенную для решения различных задач, в том числе и задач управления разнообразными объектами.

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

Регистр DATA – восьмиразрядный, двунаправленный, шестнадцатеричный адрес регистра – 378Н. Регистр STATUS имеет пять разрядов, информация в этот регистр может быть занесена только из внешнего устройства (датчики, клавиатура), адрес регистра – 379Н.

Регистр CONTROL состоит из четырех разрядов, информацию в этот регистр можно занести только из компьютера, адрес регистра – 37АН.

Разряды регистров выведены на разъем, схема которого показана на рис. 3.1.

Здесь, цифрами отмечены номера контактов разъема, буквами – номера разрядов регистров. Контакты разъема с 18 по 25 подключены к «общей точке».

Пользуясь схемой разъема LPT-порта, можно подключать к нему различные датчики и исполнительные механизмы (необходимо при этом предусмотреть согласование уровней передаваемых сигналов, т. к. для порта лог. 1 соответствует уровень напряжения 5 В, а лог. – уровень напряжения 0 В). Естественно, что для управления исполнительными механизмами, в соответствии с требуемым алгоритмом, необходимо разработать программное обеспечение. Разработка программного обеспечения является наиболее трудоемким и ответственным этапом в процессе разработки компьютерной системы управления технологическим процессом.

3. Описание лабораторного макета Принципиальная схема лабораторного макета показана на рис. 3.2.

На рисунке приведен фрагмент разъема LPT-порта. Восемь светодиодов подключены к разрядам регистра DATA. Для ограничения тока, протекающего через светодиоды на уровне:

в схеме применяются резисторы, величина сопротивления которых составляет 470 Ом.

Ниже приведен текст программы на языке Ассемблера реализующей алгоритм управления, при котором десять раз «мигают» светодиоды, подключенные к разрядам D0 и D3 регистра DATA.

page 120, title hik(exe) stacs segment para stack ‘stack’ dw 32 dup(?) stacs ends dats segment para ‘data’ n dw ?

dats ends cods segment para ‘code’ begin proc far assume cs:cods,ds:dats,es:dats,ss:stacs push ds sub ax,ax push ax mov ax,dats mov ds,ax mov es,ax mov cx,0ah m0:mov dx,378h mov al,09h out dx,al call pauza mov al,00h out dx,al call pauza dec cx jnz m ret pauza proc mov bx,0ffh m1:mov n,0fh m8:dec n jnz m dec bx jnz m ret pauza endp begin endp cods ends end begin 4. Лабораторное задание Задание к лабораторной работе формулирует преподаватель.

Возможные варианты заданий:

- Реализовать алгоритм «бегущий огонь» слева направо;

- Реализовать алгоритм «бегущий огонь» справа налево;

- Светодиоды «мигают».

5. Порядок выполнения работы Реализовать заданный алгоритм на языке Ассемблера.

Подключить макет к разъему LPT порта компьютера.

Используя текстовый редактор, ввести программу.

Провести ассемблирование и компоновку программы, пользуясь программой MASM.EXE.

Выполнить и отладить программу.

Составить отчет.

6. Порядок оформления отчета Отчет должен содержать схему лабораторного макета и текст разработанной программы.

7. Контрольные вопросы 1. Команды программы и их функции.

2. Назначение регистров параллельного порта компьютера.

3. Взаимодействие команд программы и элементов схемы лабораторного макета.

1. Пей Ан. Сопряжение ПК с внешними устройствами. М.: ДМК Пресс, 2001. 320 с.

ОСНОВЫ ПРОГРАММИРОВАНИЯ НА АССЕМБЛЕРЕ

В WINDOWS

1. Цель работы Изучение основ программирования на ассемблере в Win32.

2. Основные теоретические положения Долгое время писать на ассемблере означало писать под DOS. С выходом операционной системы Windows 95 программирование на ассемблере несколько потеряло популярность, однако, на сегодняшний день все еще актуально для решения большого круга задач. Ассемблер используется для оптимизации кода программ, написания драйверов, трансляторов, программирования некоторых внешних устройств и многого другого. Кроме того, знание ассемблера позволяет понять внутреннее устройство процессора, работу программ и операционных систем. В операционной системе Windows программировать на ассемблере легче, чем в операционной системе MS DOS. Операционная система Windows использует линейную адресацию памяти.

Другими словами, всю память можно рассматривать как один сегмент.

Для программиста на языке ассемблера это означает, что адрес любой ячейки памяти будет определяться содержимым одного 32-битного регистра, например, EBX. Это первая особенность программирования на ассемблере для Windows. Второй основной особенностью является то обстоятельство, что программирование в Windows в значительной степени состоит из вызовов функций API.

API (Application Program Interface, программный интерфейс приложения) – это набор функций программирования, описывающих доступ к данным и методам классов, которыми пользуется программист при написании приложений (программ). Взаимодействие с внешними устройствами и ресурсами операционной системы будет происходить посредством таких функций. Упрощенно можно сказать, что APIфункции – это готовые к использованию функции, которые уже написаны другими программистами, и для выполнения этих функций достаточно только вызвать их и передать им параметры, с которыми они будут работать. Параметры функции помещаются в специально организованную область памяти, называемую стеком. В стеке используется принцип «последним пришел – первым вышел».

Для организации вызова WinAPI функции в общем случае требуется выполнить следующие шаги:

1. Во включаемом файле определить вызываемую функцию.

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

WriteConsole (hConsoleOutput, lpvBuffer, cchToWrite, lpcchWritten, lpvReserved);

то сначала мы помещаем в стек параметр lpvReserved, затем lpcchWritten и так далее.

3. Сразу после помещения параметров в стек следует вызвать функцию.

В Windows программы пишут в обычном текстовом виде. Такой текстовый вид называется исходным файлом (англ. – source). Файлы исходников имеют расширение.TXT или.ASM.

Как и для любого языка программирования, для ассемблера необходима система программирования, включающая язык ассемблера и транслятор с этого языка. Такие системы программирования тоже называются ассемблерами. В настоящее время наиболее часто используется MASM (Microsoft Assembler) и MASM32. Также существуют ассемблеры TASM, NASM, FASM и некоторые другие.

Программа-ассемблер создает объектный файл с расширением OBJ. Данный файл является переходным между ассемблерным файлом (.ASM) и программой (.EXE/.COM). Дело в том, что текст больших программ хранится во многих файлах. Чтобы получить готовую программу, тексты на ассемблере сначала преобразуются в объектные файлы, а затем их обрабатывает редактор связей или компоновщик, который как бы собирает их вместе. Затем необходимо воспользоваться линковщиком (компоновщиком), который входит в комплект программы-ассемблера. Линковщик также проверяет, нет ли какихлибо ошибок в объектном файле, но не грамматических, а логических.

Например, отсутствие необходимой объектной библиотеки, указанной в самом файле либо в командной строке (программа-ассемблер этого не делает). Если ошибок не обнаружено, компоновщик создает машинный код (программу типа COM или EXE), которую можно запускать на выполнение. Типы файлов.COM и.EXE имеют отличия в структуре ассемблерной программы. Первый тип (COM) не может превышать 64Кб и используется только в MS-DOS..EXE может быть создан и для DOS, и для Windows. Запуск.EXE-программы может быть осуществлён с помощью двойного щелчка мышью.

Инструментальный пакет MASM Было отмечено, что для создания программ на ассемблере в Windows, необходим текстовый редактор и компилятор. Реальные программы Win32 используют также внешние функции, стандартные константы и переменные, ресурсы и много другое. Всё это требует дополнительных файлов, которые есть в инструментальном пакете MASM32. Важно понять, что MASM32 не компилятор, а сборник для программирования под Win32, в который входит 32-битный компилятор MASM. Инструментальный пакет MASM32 предназначен для создания приложений Windows на языке ассемблера и содержит все необходимые инструменты, к тому же он распространяется бесплатно.

Основные сведения и порядок работы в пакете MASM32:

1. Для создания исходных текстов программ рекомендуется использовать текстовый процессор пакета MASM32 под названием QEDITOR (от Quick Editor, быстрый редактор). После набора сохранить текст программы командой File – Save, указать папку BIN и расширение.ASM, например, MY.ASM.

2. Командой Project – Build All создать объектный и исполнимый файлы. Если исходный текст программы набран без ошибок, то в папке, где он хранился, увидим два новых файла: MYPROG.OBJ и MYPROG.EXE.

3. Когда объектный и исполнимый файлы созданы, запустите программу на выполнение. Для этого можно дважды щелкнуть мышью по названию исполнимого файла (в папке BIN) или запустить программу через редактор QEDITOR командой Project – Run Program.

Пример 0. «Скелет» стандартной программы..model flat, stdcall option casemap :none ;подключение необходимых библиотек include \MASM32\INCLUDE\windows.inc include \MASM32\INCLUDE\masm32.inc include \MASM32\INCLUDE\gdi32.inc include \MASM32\INCLUDE\user32.inc include \MASM32\INCLUDE\kernel32.inc includelib \MASM32\LIB\masm32.lib includelib \MASM32\LIB\gdi32.lib includelib \MASM32\LIB\user32.lib includelib \MASM32\LIB\kernel32.lib ;раздел, где объявляются все константы.const ;раздел, где объявляются переменные, уже имеющие какое-то значение.data ;раздел, где объявляются переменные, еще не имеющие значения.data?

.code start: ;с этого слова начинается код программы invoke ExitProcess, end start ;с этого слова заканчивается код программы Сохраните этот «скелет» в отдельном файле для удобства и используйте как заготовку.

Пример 1. Структура программы и основные директивы Построчно разберём простейшую программу. Текст программы на ассемблере содержит кроме инструкций процессору еще и служебную информацию (в виде директив), предназначенную для программы-ассемблера. Начнем с простого. В первой программе не будет вызовов API-функций, ее цель – понять саму структуру программы на языке ассемблера для Windows. Поэтому программа, прибавляющая к 8 число 3, будет выглядеть следующим образом:

.model flat, stdcall В ней инструкции процессора mov, add, ret окружены директивами. Первые три директивы начинаются с точки Директива.386 показывает, для какого процессора предназначена программа. В нашем случае это процессор Intel 80386 и более поздние модели, ведь семейство процессоров Intel совместимо снизу вверх. Вторая директива.model flat, stdcall показывает, в какой среде будет работать программа. Все программы работают под управлением операционной системы, которая их запускает и обеспечивает взаимодействие с внешней средой. Директива.model задаёт модель памяти flat (плоская или сплошная) для нашей программы. Эта модель памяти используется для программирования под Windows, т. е. директива говорит о том, что именно для операционных систем семейства Windows 95 предназначена программа. Stdcall – это "уговор" о том, кто будет чистить параметры (функция, которую вызвали, или сам вызывающий). Мы всегда будем использовать вариант "функция чистит свои параметры".

Он и называется stdcall. Однако такое объяснение не полное, и мы вернемся к параметру stdcall при объяснении вызова функций. К этому моменту вы уже будете знать, что такое стек. Третья директива.code показывает, где начинаются сами команды процессора. Когда операционная система пытается запустить программу, она ищет в ней инструкцию, с которой нужно начать, и отправляет ее процессору.

Когда же инструкции кончаются, операционная система «подхватывает» программу и помогает ей правильно завершиться, чтобы освободить место другим, ведь Windows – многозадачная операционная система, способная выполнять одновременно несколько программ. Уйти из-под «опеки» операционной системы помогает инструкция ret. Инструкция, с которой начинается программа, обычно помечается последовательностью символов с двоеточием на конце (меткой). В нашем случае это start:. Там, где оканчивается последовательность команд процессора, в программе должна стоять директива end, в нашем случае это end start. Эта директива, а также сама метка не переводятся в инструкции ассемблера, а лишь помогают получить программу, которую способен выполнить процессор. Без них программа-ассемблер не поймет, с какой инструкции процессор начнет работу.

Пример 2. Использование функций API У предыдущей программы не было связи с внешним миром, она ничего не считывала с клавиатуры и не выводила на экран. О том, что она делала, мы могли узнать только с помощью отладчика. Обычно программам помогает общаться с окружающим миром операционная система, которая берет на себя все детали взаимодействия с внешними устройствами. В системе Windows, для этого служат функции API.

API – это стандартные функции, на основе которых и пишут все программы для Windows. Например MessageBox выдаёт сообщение на экран, PostQuitMessage сообщит Windows, что программа хочет закончить работу и т. д. Все они уже готовы – остается только вызывать их. Получается, что используя API-функции, мы применяем элементы программирования высокого уровня. Находятся API-функции обычно в динамически загружаемых библиотеках – файлах с расширением.DLL. При вызове каждой API-функции надо передавать параметры, т. е. аргументы, с которыми ей предстоит работать. Раньше это делалось так: параметры вносились в стек (команда push), а затем вызывалась сама программа (команда call). Например:

call MessageBox Такая запись допускается и сейчас, но существует и более компактная: invoke MessageBox, hWnd, Text1, Text2. Правда, использование invoke требует прототипов для каждой вызываемой программы, но прототипы API готовы и хранятся в соответствующих файлах включения. Рассмотрим программу с использованием функций API.

Прежде чем приступить к выводу на экран, изучим более простую процедуру ExitProcess. Её вызывает каждая Windows-программа, чтобы завершить свою работу. В ассемблере под DOS мы пользовались инструкцией возврата ret. Но ExitProcess действует правильнее, не только возвращая управление операционной системе, но и освобождая занятые программой ресурсы. В следующем листинге показана программа для Windows, которая только и делает, что правильно завершается.

.model flat, stdcall option casemap:none includelib C:\MASM32\LIB\kernel32.lib ExitProcess proto :DWORD call ExitProcess end start Вызываемая в ней процедура ExitProcess требует одного параметра – это код завершения, возвращаемый операционной системе. Он передается процедуре командой push 0. Число 0 считается признаком удачного завершения. Поскольку ExitProcess – «чужая» процедура, не определенная в нашей программе, ассемблер должен знать, где она находится, а также (для проверки – она ли это) число и размер ее параметров. Сведения об адресе и параметрах процедуры хранятся в файле библиотеки kernel32.lib, который подключается к ассемблерному тексту директивой includelib C:\MASM32\LIB\kernel32.lib. Перед тем как создать инструкцию вызова этой процедуры компоновщик сравнивает сведения из библиотеки с прототипом ExitProcess proto :DWORD, и если все совпадает, создает пригодный к исполнению файл с расширением.EXE. Прототип процедуры очень прост и состоит из имени, слова proto и параметров. В нашем случае параметр один – это двойное слово (то есть 4 байта) DWORD. Если параметров несколько, они разделяются запятой.

Пример 3. Вывод строки на экран Создадим программу, выводящую на экран фразу “Hello, world!”:

.model flat, stdcall option casemap:none ExitProcess proto :dword GetStdHandle proto :dword WriteConsoleA proto :dword, :dword, :dword, :dword, :dword includelib C:\MASM32\LIB\kernel32.lib msg db “Hello, world!”, 0dh, 0ah cWritten dd ?

invoke GetStdHandle, - mov stdout, eax invoke WriteConsoleA, stdout, ADDR msg, sizeof msg, ADDR cWritten, invoke ExitProcess, end start В программе вызываются три процедуры: GetStdHandle, WriteConsoleA и ExitProcess.

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

Практическая часть лабораторной работы состоит из двух частей.

1. При помощи инструментального пакета MASM32 создайте и выполните программу на ассемблере, вычисляющую сумму и разность двух чисел: первое число – номер в группе, второе – число, противоположное номеру первой буквы фамилии в алфавите (отрицательное число в дополнительном коде). Противоположным к некоторому х называется число, равное х по абсолютной величине, но обратное по знаку. Сумму и разность переведите вручную в десятичную форму. Исследуйте работу программы в отладчике OllyDbg.

2. Перепишите программу из примера 3, занося параметры функций GetStdHandle и WriteConsoleA в стек без использования процедуры Invoke.

4. Контрольные вопросы 1. Для чего используется язык ассемблера?

2. Что такое программа-ассемблер? Какие программы-ассемблеры Вы знаете?

3. Чем программирование в Windows отличается от программирования в DOS?

4. Что такое функции API и для чего они используются?

5. Каков порядок вызова функций API? Как передаются параметры функций API? В каком порядке они должны заноситься в стек?

6. Зачем и каким образом используется процедура Invoke?

7. Что такое объектный файл? компоновщик?

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

9. Для чего к программам на ассемблере подключают библиотеки?

10. Каково назначение прототипов процедур?

1. Бройдо В. Л. Вычислительные системы, сети и телекоммуникации: Учебник для вузов. СПб.: Питер, 2005. 703 с.

2. Зубков С. В. Assembler. Язык неограниченных возможностей.

М.: ДМК Пресс, 1999.

3. Крупник А. Б. Изучаем Ассемблер. СПб.: Питер, 2005. 249 с.

4. Пирогов В. Ю. Ассемблер для Windows. 3-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2005. 864 с.

5. Пятибратов А. П. Вычислительные системы, сети и телекоммуникации: Учебник / А. П. Пятибратов, Л. П. Гудыно, А. А. Кириченко; под ред. А. П. Пятибратова. 3-е изд., перераб. и доп. М.: Финансы и статистика, 2005. 560 с.

6. Юров В., Хорошенко С. Assembler: Учебный курс. СПб.: Питер Ком, 1999. 672 с.

7. http://www.wasm.ru. На сайте размещены учебники и статьи, доступные для скачивания программы-ассемблеры.

ОТЛАДЧИК ПРОГРАММ ДЛЯ МИКРО-ЭВМ КР1816 (FD48) 1. Цель работы Работа служит для развития навыков программирования на языке Ассемблера Микро-ЭВМ серии КР1816 и для изучения современных средств отладки программ.

2. Основные теоретические положения (описание отладчика) Отладчик работает на персональных ЭВМ типа IBM PC XT/AT и совместимых с ними ЭВМ, и требует для работы не менее 128 Кбайт оперативной памяти. Отладчик позволяет:

– загрузить для отладки НЕХ-файлы, вырабатываемые имеющимися кросс-средствами (транслятором с языка ассемблера), а также файлы двоичного кода;

– просмотреть на экране дисассемблированный текст загруженной программы, включая адреса и коды команд, область имитируемого ОЗУ данных, область внешней памяти, памяти программ, содержимое всех регистров микро-ЭВМ;

– выполнить загруженную программу по шагам с просмотром результатов и в непрерывном режиме;

– внести изменения в загруженную программу;

– внести изменение в содержимое регистров, флагов и памяти в командном режиме и в режиме полноэкранного редактирования;

– вывести на печать или дисковые носители дисассемблированный текст;

– определить время выполнения загруженной программы по встроенному счетчику.

Ввод команд. Сразу после запуска отладчик готов к приему команд пользователя – курсор находится в командной строке. В нижней строке экрана находится меню функциональных клавиш F1–F10 – они выполняют наиболее употребительные команды. Остальные команды вводятся с клавиатуры. Для редактирования команд можно пользоваться клавишами Ins, Del, BackSpace, Home, End, Esc. После начала ввода команды и до нажатия Enter функциональные клавиши недоступны. При вводе неверной команды выдается сообщение об ошибке и звуковой сигнал.

Описание команд. Назначение функциональных клавиш.

F1 – выполнить текущую инструкцию загруженной программы.

Текущая инструкция выделена в окне дисассемблированного текста светлым прямоугольником. На экране можно наблюдать результат ее выполнения.

F2 – выполнять программу до следующей по адресу за текущей инструкции. Позволяет выполнять подпрограмму или цикл как одну инструкцию.

F3 – позволяет представлять содержимое регистров и памяти в десятичной, а при повторном нажатии – в двоичной форме. (После запуска отладчика информация представлена в шестнадцатеричной форме).

F4 – переключает большое окно памяти с внутренней (INT RAM) на внешнюю (EXT RAM) и обратно.

F5 – установка точек прерывания (см. ниже).

F6 – переключает форму представления памяти в окне в двоичную и обратно.

F7 - листает окно памяти данных вверх на одну строку.

F8 – листает окно памяти данных вниз на одну строку.

F9 – листает окно памяти программ вверх на одну строку.

F10 – листает окно памяти программ вниз на одну строку.

Home – листает окно памяти данных вверх на одну страницу.

End – листает окно памяти данных вниз на одну страницу.

PgUp – листает окно памяти программ вверх на одну страницу.

PgDn – листает окно памяти программ вниз на одну страницу.

Команды отладчика. Для быстрого получения справки по командам можно ввести команду «Н» или нажать комбинацию клавиш «Ctrl-H». Используются следующие обозначения:

– параметры заключены в угловые скобки, например, ;

– необязательные параметры заключены в квадратные скобки, например, [].

Занести число в регистр текущего банка. Число должно быть байтом.

Формат записи:

=. Пример: R4=FF Можно использовать регистры специального назначения (A, BUS, T, PC). Пример: А=20 или РС=0С12.

Установить или сбросить флаг. Имена флагов: C, AC, F0, BS, S0, S1, S2, TF, T0, T1, F1.

Формат записи: =.

Занести число в порт. Формат: P0=. Номер порта – 1, 2, 4–7.

Пример: Р02= Установить адрес дисассемблированного текста в окне. Формат: D. Пример:

D Распечатать дамп области памяти в шестнадцатеричном формате.

Формат:PRT Распечатать дисассемблированный текст. Формат: PRTD Занести число в память.

Формат: [–]= Если указан кон.адрес, то этим числом заполняется область памяти. Тип памяти может быть I, E или Р, где I – внутренняя память, Е – внешняя, Р – программная память. Пример:

I 22=55 или P 0-40=FF Установить или сбросить бит в памяти. Формат:.=. Номер бита – 7–0. Пример:

I 20.6= Установить или сбросить бит в регистре специального назначения. ( A, BUS, P01, P02, P04-P07). Формат:.=. Пример: BUS.3= Установить начальный адрес памяти в окне. Формат: М Пример: M I 20 или M E 0FF или M P Выполнить программу. Формат: G [,] Если нач. адрес не указан, выполнение начинается с текущей команды (выделена белым прямоугольником). Если используются точки прерывания, то кон.адрес можно не указывать.

Выполняющуюся программу можно остановить нажатием любой клавиши. Можно указать только конечный адрес, но запятая должна присутствовать. Пример: G 100,FF Включить трассировку программы. Трассировочные записи выводятся на принтер. Пример: T ON Выключить трассировку. Пример: T OFF Имитировать высокий или низкий уровень на входе INT. Пример:

INT= Сбросить счетчик времени выполнения программы. RSTC Выход в DOS. QUIT Сброс процессора. RST Перезапуск FD48. N Полноэкранное редактирование. Переход в режим редактирования возможен при нажатии Enter. Можно перемещать курсор с помощью клавиш управления курсором и изменять содержимое регистров, памяти и флаги. Можно менять начальный адрес дисассемблированного текста (текущей инструкции) и начальные адреса окон памяти.

Чтобы вернуться в командную строку можно нажать снова Enter.

Режим ассемблера. Для ввода команд программы в мнемонических обозначениях нужно в режиме полноэкранного редактирования поместить курсор в поле текущей инструкции загруженной программы. Ввести мнемонику («MOV A,PSW») и нажать Enter. Если команда верна, то ее код заносится в память программ, а окно устанавливается на следующий адрес. Для выхода из этого режима можно нажать кнопку «Q» или увести курсор из поля текущей инструкции.

Работа с точками прерывания. Меню точек прерывания вызывается клавишей F5. Можно установить одновременно 8 точек прерывания. Прерывание (останов) программы происходит при достижении указанного в колонке «РС» адреса при выполнении условия «Counter»=»Occur». Counter – счетчик, значение которого определяет, сколько раз программа должна пройти через указанный адрес, чтобы произошел останов. Occur показывает, сколько раз программа проходила через указанный адрес. Окончив редактирование, текущие значения точек прерывания можно сохранить на диске, нажав клавишу F2. При этом запрашивается номер набора точек прерывания (0–9).

Информация записывается в файл с именем FD48.BRK. Восстановить картинку, можно нажав F1, также указав ее номер. Для возврата в основное меню можно нажать F5. Определив точки прерывания, можно запустить программу командой «G». При останове программы по прерыванию выдается сообщение с указанием номера точки прерывания.

3. Лабораторное задание Задание должно включать разработку программ, позволяющих работать с регистрами, портами и памятью микро-ЭВМ. Варианты заданий:

1. Разработать и реализовать алгоритм сложения двоичных чисел;

2. Разработать и реализовать алгоритм вычитания двоичных чисел;

3. Числа, расположенные в ПЗУ, выводить в порты контроллера с интервалом времени 1 мс.

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

5. Порядок оформления отчета Отчет должен содержать функциональную схему микро-ЭВМ КР1816 и разработанную программу.

6. Контрольные вопросы 1. Команды отладчика.

2. Команды микро-ЭВМ КР1816.

1. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т. / Под ред. В. А. Шахнова.

М.: Радио и связь, 1988. Т. 2. 368 с.: ил.

2. Микропроцессоры и микроЭВМ в системах автоматического управления: Справочник / Под ред. С. Т. Хвоща. Л.: Машиностроение, 1987. 640 с.: ил.

СИСТЕМА КОМАНД КОНТРОЛЛЕРОВ

1. Цель работы Работа служит для развития навыков программирования на языке Ассемблера Микро-ЭВМ семейства PIC и для изучения современных средств отладки программ.

2. Основные теоретические положения Система команд контроллера PIC16F84A приведена в таблице 1.

Все команды делятся на группы:

1) команды, работающие с байтами;

2) команды, работающие с битами информации;

3) команды, работающие с константами;

4) команды передачи управления.

DECFSZ f, d Декремент f, пропустить команду, если 0 1(2) INCFSZ f, d Инкремент f, пропустить команду, если 0 1(2) BTFSC f, b Пропустить команду, если бит в f равен 1(2) BTFSS f, b Пропустить команду, если бит в f равен 1(2) RETLW k Возврат из подпрограммы с загрузкой В таблице 6.1 приняты следующие обозначения:

f – название регистра (в общем виде), к которому эта команда обращается и с содержимым которого будет производиться действие;

d – указатель места сохранения результата при операциях с байтами. Если d = 0, то результат команды сохраняется в регистре W (в аккумуляторе).

Если d = 1, то результат исполнения команды сохраняется в регистре f;

b – номер бита в регистре, с которым производится действие;

k – константа, то есть некое число, которое задается программистом.

Ниже приведена программа, написанная на языке Ассемблера контроллера PIC:

; Begin

RETFIE

L0002: NOP ; 1: Symbol comp_change = PIR1.CMIF 'comparator interrupt flag ; The address of 'comp_change' is 0xC, ; 3: CMCON = 0x06 'set comparator mode to two common reference comparators with outputs ; 4: TRISA = 0x07 'set RA0, RA1 and RA2 as inputs, other PORTA pins as outputs BSF STATUS,RP ; 5: VRCON = 0xec 'turn on, configure voltage reference module for 2.5V and connect it to RA ; 6: TRISB = 0x00 'set PORTB pins as outputs ; 8: loop1:

L0001: NOP ; 9: While Not comp_change 'wait for comparator output change L0003: NOP ; 10: Wend L0004: MOVLW 0x1F

ANDWF STATUS,F

; 11: PORTB = CMCON 'display CMCON register on PORTB pins, RB and RB7 are comparator outputs MOVWF 0x ; 12: comp_change = 0 'reset comparator interrupt flag ; 13: Goto loop1 'repeat forever ; End of program L0005: GOTO L ; End of listing 3. Описание среды отладки программ Лабораторная работа выполняется на базе программного продукта MPLAB IDE или PIC Simulator IDE.

4. Лабораторное задание Ввести текст, приведенной выше программы в память контроллера. Выполнить программу. Понять назначение команд программы.

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

1. Разработать и реализовать алгоритм сложения двоичных чисел;

2. Разработать и реализовать алгоритм вычитания двоичных чисел;

3. Числа, расположенные в РОН, выводить в порты контроллера с интервалом времени 1 мс.

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

6. Порядок оформления отчета Отчет должен содержать функциональную схему микроконтроллера и разработанную программу.

7. Контрольные вопросы 1. Команды микроконтроллера серии PIC.

1. Яценков В. С. Микроконтроллеры Microchip: Практическое руководство. М.: Горячая линия–Телеком, 2007. 280 с.: ил.



Похожие работы:

«Государственное казенное учреждение Новосибирской области Новосибирский институт мониторинга и развития образования Методический анализ результатов единого государственного экзамена в 2013 году Новосибирск 1 Ответственный за выпуск С.В. Кондратьев В сборнике представлены материалы подготовленные председателями предметных комиссий Новосибирской области по результатам единого государственного экзамена. Все материалы представлены в авторском варианте. Сборник будет интересен для специалистов...»

«Данные об обеспеченности учебно-методической документацией Направление (специальность): 070501.65 Режиссура театра Обеспечен ность студентов учебной Наименование № Наименование Количество литератур учебников, учебно-методических, методических пособий, разработок и п/п дисциплины экземпляров ой рекомендаций (экземпля ров на одного студента) 1. Георгиева Н.Г., Георгиев В.А. История России. Учебное пособие для 1. История 10 1, ВУЗов- М.: Проспект,2009-332 с. 2. Дворниченко А.Ю., Тот Ю.В., Ходяков...»

«ИНСТИТУТ КВАНТОВОЙ МЕДИЦИНЫ ЗАО МИЛТА – ПКП ГИТ РОССИЙСКИЙ ОНКОЛОГИЧЕСКИЙ НАУЧНЫЙ ЦЕНТР КВАНТОВАЯ ТЕРАПИЯ В ОНКОЛОГИИ Экспериментальные и клинические исследования Методические рекомендации для врачей Москва 2002 Квантовая терапия в онкологии. Экспериментальные и клинические исследования. /Дурнов Л.А., Грабовщинер А.Я., Гусев Л.И., Балакирев С.А., Усеинов А.А., Пашков Б.А. – М.: Изд. ЗАО МИЛТА-ПКП ГИТ, 2002. – 94 с. На основе проведенного обзора литературы и собственного клинического опыта...»

«Уважаемые выпускники! В перечисленных ниже изданиях содержатся методические рекомендации, которые помогут должным образом подготовить, оформить и успешно защитить выпускную квалификационную работу. Рыжков, И. Б. Основы научных исследований и изобретательства [Электронный ресурс] : [учебное пособие для студентов вузов, обучающихся по направлению подготовки (специальностям) 280400 — Природообустройство, 280300 — Водные ресурсы и водопользование] / И. Б. Рыжков.— СанктПетербург [и др.] : Лань,...»

«РОССИЙСКАЯ ФЕДЕРАЦИЯ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ: Проректор по учебной работе _ ВОЛОСНИКОВА Л.М. 2013 г. УЧЕБНО-ОЗНАКОМИТЕЛЬНАЯ, ЭКОНОМИЧЕСКАЯ И МЕНЕДЖМЕНТА, ПРЕДДИПЛОМНАЯ ПРАКТИКА Учебно-методический комплекс. Методические указания для студентов специальности 080507.65 Менеджмент организации, заочная форма обучения ПОДГОТОВЛЕНО К ИЗДАНИЮ:...»

«СТОЛЯРОВ А.А., АНДРЕЕВ В.В. МЕТОДИЧЕСКИЕ УКАЗАНИЯ по организации и проведению итоговой государственной аттестации бакалавров и магистров по профилю подготовки Наноинженерия Под редакцией заслуженного деятеля науки РФ, Член-корреспондента РАН, профессора, В.А.Шахнова Комплект учебно-методического обеспечения для подготовки бакалавров и магистров по программам высшего профессионального образования направления подготовки Нанотехнология с профилем подготовки Наноинженерия Москва МГТУ им.Н.Э.Баумана...»

«Программа бизнес - консультирования Филиала ФГБОУ ВПО МГУТУ имени К.Г. Разумовского в г.Ростове-на-Дону Основные идеи ФГБОУ ВПО МГУТУ как центр бизнес -консультирования казачьих сообществ система взаимодействия в области программно-целевого бизнес – планирования Реализация проекта ФГБОУ ВПО МГУТУ Комплексное сопровождение бизнес-планов казачьих предприятий в рамках реализации программы государственно-частного партнерства рекомендуемая структура бизнес-плана инвестиционного проекта методические...»

«РЯЗАНСКОЕ ВЫСШЕЕ ВОЕННОЕ КОМАНДНОЕ УЧИЛИЩЕ СВЯЗИ ИМЕНИ МАРШАЛА СОВЕТСКОГО СОЮЗА М.В. ЗАХАРОВА ПОДГОТОВКА СПЕЦИАЛИСТА РАДИОСВЯЗИ. СПЕЦИАЛЬНАЯ, ТЕХНИЧЕСКАЯ И ТАКТИКОСПЕЦИАЛЬНАЯ ПОДГОТОВКА Учебное пособие выпускнику РВВКУС Под редакцией кандидата военных наук, доцента Н.В. Тютвина Рязань 2007 УДК 623.00.621.396.72(07) ББК 32.884.1 Г 91 Руководитель авторского коллектива кандидат военных наук, доцент Н.В. Тютвин Авторский коллектив: Гутенко А.И., Ковляшкин В.П., Корнеев А.В., Мостовщиков С.А.,...»

«ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Геолого-геофизический факультет Кафедра геофизики А. В. ЛАДЫНИН РЕГИОНАЛЬНАЯ ГЕОФИЗИКА Учебное пособие Новосибирск 2006 УДК 550.3 (075):55 (1/9) ББК Д2 я 731 Л.157. Ладынин А. В. Региональная геофизика: Учеб. пособие / Новосибирский гос. ун-т. Новосибирск, 2006. 187 с. Пособие предназначено студентам-геофизикам, выбравшим спецкурс Региональная геофизика для изучения в конце бакалаврского цикла или в магистерском...»

«Уважаемые выпускники! В перечисленных ниже изданиях содержатся методические рекомендации, которые помогут должным образом подготовить, оформить и успешно защитить выпускную квалификационную работу. Рыжков, И. Б. Основы научных исследований и изобретательства [Электронный ресурс] : [учебное пособие для студентов вузов, обучающихся по направлению подготовки (специальностям) 280400 — Природообустройство, 280300 — Водные ресурсы и водопользование] / И. Б. Рыжков.— СанктПетербург [и др.] : Лань,...»

«Алексей Павлович КИРЕЕВ, доктор экономических наук, профессор, Международный валютный фонд новое методическое пособие для учителя экономики1 УРОК 3. РынОЧнАя сИстЕМА ЭКОнОМИКИ Основные понятия Разделение труда, других факторов производства, рынок, спрос, закон спроса, предложение, закон предложения, рыночное равновесие, цена, рыночный механизм. Оборудование Общие требования: компьютер, локальная сеть, доступ в Интернет. Рабочее место учителя: компьютер, проектор, экран, доступ в локальную сеть...»

«Юрий Петрович Подолян Тематическое и поурочное планирование по ОБЖ. 10 класс Тематическое и поурочное планирование по ОБЖ: 10-й класс: к учебнику М.П. Фролова, Е.Н. Литвинова и др. Основы безопасности жизнедеятельности. 10 класс под ред. Ю.Л. Воробьева: АСТ, Астрель; Москва; 2008 ISBN 978-5-17-0466993, 978-5-271-18240-2 Аннотация Пособие содержит подробное планирование уроков ОБЖ в 10 классе к учебнику М.П. Фролова, Е.Н. Литвинова, А.Т. Смирнова и др. Основы безопасности жизнедеятельности. 10...»

«В.В.Кузнецов КОРПОРАТИВНОЕ ОБРАЗОВАНИЕ 3 УДК 371(075.8) ББК 74я73 К891 Рецензенты: доктор педагогических наук, профессор, действительный член Российской академии образования А.М. Новиков; магистр управления, начальник отдела подготовки кадров ОАО НПК Уралвагонзавод С.В. Васильев; кандидат педагогических наук, директор Центра по подготовке кадров ООО Газпром добыча Оренбург Н.Н. Полина; корпоративный университет ОАО НПК Уралвагонзавод Кузнецов В.В. Корпоративное образование: учеб. пособие для...»

«Вода в нашей жизни Учебное пособие для факультативного курса в 8 - 9 классах Луганск – 2009 УДК 628.1 и 628.3 Вода в нашей жизни /Авторы-составители Н.И. Зотов, Н.В. Моисеенко – Издательство Норд-Пресс; г. Донецк, 2007. – с. 229 Настоящее учебное пособие подготовлено по инициативе ООО Лугансквода и одобрено Главным управлением градостроительства, архитектуры и жилищно-коммунального хозяйства Луганской облгосадминистрации в рамках Инвестиционной программы 2008 года с перспективой развития до...»

«Министерство образования и науки Челябинской области государственное бюджетное образовательное учреждение среднего профессионального образования (среднее специальное учебное заведение) Южно-Уральский многопрофильный колледж ГБОУ СПО (ССУЗ) ЮУМК Вопросы к экзаменам и зачетам Задания для выполнения контрольных работ Вариант № 5 III курс правового заочного отделения Специальность: Право и организация социального обеспечения Челябинск 2013 г. 1 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ КОНТРОЛЬНЫХ РАБОТ...»

«ЭКОЛОГИЧЕСКАЯ ЭТИКА Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования ГОРНО-АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Кафедра геоэкологии и природопользования И. А. Ильиных Экологическая этика Учебное пособие Горно-Алтайск, 2009 2 Печатается по решению методического совета Горно-Алтайского госуниверситета ББК – 20.1+87.75 Авторский знак – И 46 Ильиных И.А. Экологическая этика : учебное пособие. – Горно-Алтайск : РИО ГАГУ, 2009. –...»

«Содержание 1. Цели освоения дисциплины 2. Место дисциплины в структуре ООП бакалавриата 3. Компетенции обучающегося 4. Структура и содержание дисциплины 5. Образовательные технологии 6. Формы и методы контроля 7. Учебно-методическое и информационное обеспечение дисциплины 8. Материально-техническое обеспечение Приложение 1 Лист согласования рабочей программы дисциплины Приложение 2 Дополнения и изменения рабочей программы дисциплины 2 1.Цели освоения дисциплины Целью изучения дисциплины...»

«Н.А.Чумаков БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ. МЕДИЦИНА КАТАСТРОФ. Рекомендовано УМО по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям подготовки 220100 – системный анализ и управление и 280100 Безопасность жизнедеятельности. Санкт-Петербург 2006 г. УДК 378.147: 614.88 ББК 51.1(2)2 Ч-90 Рецензенты: Начальник отдела медицинской защиты Главного управления МЧС России по г.Санкт-Петербургу полковник м/с...»

«Русский язык - морфология: учебник для вузов, 2010, 349 страниц, 5829111748, 9785829111748, Академический проект, 2010. Учебник содержит материалы, рассчитанные на то, чтобы расширить кругозор студента и сформировать интерес к дальнейшему самообразованию, что обусловлено задачами формирования непрерывности образовательного процесса Опубликовано: 5th April 2012 Русский язык - морфология: учебник для вузов СКАЧАТЬ http://bit.ly/1ovaEZ8 Русский язык и культура речи учебник : [для нефилол....»

«Методические и иные документы для обеспечения образовательного процесса юридического факультета специальности 030501.65 – Юриспруденция, направление подготовки 030900.62 - Юриспруденция 030500.68 Юриспруденция 1. Учебно-методическое обеспечение для самостоятельной работы студентов: Теория государства и права: учебное пособие/ Курск: Курск.гос. тех. 1. ун-т., 2010. 140 с. сост.: О.Г.Ларина Административное право: государственный экзамен/ Ташбекова И.Ю. 2. Курск, МБУ Издательский центр ЮМЭКС,...»




























 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.