Автор работы: Пользователь скрыл имя, 15 Сентября 2013 в 11:02, курсовая работа
Ассе́мблер (от англ. assembler — рабочий-сборщик) — компьютерная программа, компилятор исходного текста программы написанной на языке ассемблера, в программу на машинном коде.
Как и сам язык (ассемблера), ассемблеры, как правило, специфичны конкретной архитектуре, операционной системе и варианту синтаксиса языка. Вместе с тем существуют, мульти платформенные или вовсе универсальные (точнее, ограниченно-универсальные, потому что на языке низкого уровня нельзя написать аппаратно-независимые программы) ассемблеры, которые могут работать на разных платформах и операционных системах. Среди последних можно также выделить группу кросс ассемблеров, способных собирать машинный код и исполняемые модули (файлы) для других архитектур и ОС.
Введение…………………………………………………….…………………………..3
Теоритическая часть…………………...…………………………………………….5
1.2 Реализация графики……..…………….………………………………….5
Практическая часть………………………………………………………………….7
2.1 Техническое задание……………………………………………………...7
2.2 Разработка алгоритма…………………....………………………………..8
2.3 Программный листинг……………………………...…………………...18
2.4 Пример работы…………………………………………………………..27
Заключение………………………………………………………………………….....34
Список используемой литературы…………………………………………………...35
Содержание
Введение…………………………………………………….…
1.2 Реализация графики……..…………….…………………………………
2.1 Техническое задание……………………………………………………...
2.2 Разработка алгоритма…………………....…………………………
2.3 Программный листинг……………………………...…………………..
2.4 Пример работы…………………………………………………………..
Заключение……………………………………………………
Список используемой литературы………………………………………………….
Введение
Ассе́мблер (от англ. assembler — рабочий-сборщик) — компьютерная программа, компилятор исходного текста программы написанной на языке ассемблера, в программу на машинном коде.
Как и сам язык (ассемблера),
ассемблеры, как правило, специфичны
конкретной архитектуре, операционной
системе и варианту синтаксиса языка.
Вместе с тем существуют, мульти
платформенные или вовсе
Ассемблирование может быть
не первым и не последним этапом
на пути получения исполняемого модуля
программы. Так многие компиляторы
с языков программирования высокого
уровня выдают результат в виде программы
на языке ассемблера, которую в
дальнейшем обрабатывает ассемблер. Так
же, результатом ассемблирования
может быть не исполняемый, а объектный
модуль, содержащий разрозненные и
непривязанные друг к другу кусочки
машинного кода и данных программы,
из которого (или из нескольких объектных
модулей) в дальнейшем может быть
скомпонован исполняемый
Реализация графики является
неотъемлемой частью в применении языка
ассемблер. В решении повседневных
задач человеку требуется работать
с информацией не только в текстовом
представлении, но и в графическом.
Именно поэтому были разработаны
инструменты представления
Для их работы были разработаны
отдельные прерывания включающие набор
функций для определения
В итоге на замену командной строки Dos начал постепенно развиваться двухмерный оконный интерфейс, использующий графические режимы.
Целью выполнения данной курсовой работы является получение практических навыков работы программирования на языке ассемблера в процессе создания графических примитивов, путём изучение опыта практической работы в конкретной предметной области.
Задачами курсового выполнения
курсовой работы является изучение методов
программирования на языке Assembler, углубление
знаний по использованию языка Assembler для
написания программ, анализ литературы
по теме исследования, изучение опыта
практической работы в конкретной предметной_области.
1 Теоритическая часть
Реализация графики на языке ассемблере осуществляется путём применения прерывания BIOS 10H – это различные функции по работе с экраном и видеоадаптером. В состав прерывания 10H входит очень большое число функций и подфункций. Далее рассмотрены наиболее часто используемые функции.
Функция 00H - установка видеорежима. Номер видеорежима заносится в регистр AL. Функция устанавливает выбранный видеорежим и очищает видеопамять. Если очищать видеопамять не требуется, старший бит регистра AL нужно установить в 1. В таблице 5 представлены стандартные текстовые видеорежимы и графические видеорежимы адаптеров CGA, EGA и VGA.
Функция 02H - установка позиции курсора. Для выполнения функции регистр BH должен содержать номер видеостраницы (начиная с 0), регистр DH – координату Y курсора (начиная с 0) (строка) и регистр DL – координату X (начиная с 0) (столбец) курсора. Позиция (0, 0) – это верхний левый угол экрана. Позиция (79, 24) – это нижний правый угол экрана для видеорежима 80x25. При помощи функции 02H можно установить позицию курсора отдельно для каждой видеостраницы (обычно используется видеостраница 0). Для того, чтобы скрыть курсор, нужно задать координату Y, выходящую за максимально возможную для текущего видеорежима.
Функция 03H - получение текущей позиции курсора (строка и столбец). Текущая строка возвращается в регистре DH, а текущий столбец – в регистре DL.
Функция 08H - чтение символа и его атрибута в текущей позиции курсора. Функция возвращает в регистре AL ASCII-код символа, находящегося в текущей позиции курсора, а также его атрибут в регистре BH. Атрибут символа представляет собой 8-битное значение, младшие 4 бита – это цвет символа, а старшие 4 бита – цвет фона. Функция 08H для большинства применений работает слишком медленно, поэтому вместо неё рекомендуется использовать чтение напрямую из видеопамяти.
Функция 09H - вывод в текущую позицию курсора нескольких символов с заданными атрибутами. ASCII-код символа заносится в регистр AL, атрибут – в регистр BL. В регистр BH заносится номер видеостраницы (обычно 0) а в регистр CX – число повторений символа. Эта функция не изменяет текущей позиции курсора. Функция 08H для большинства приложений работает слишком медленно, поэтому вместо неё рекомендуется использовать запись напрямую в видеопамять.
Функция 0CH - вывод точки на экран в графическом режиме. Координата X точки заносится в регистр CX, координата Y – в регистр DX. В регистр AL заносится цвет точки, а в регистр BH – номер видеостраницы (обычно 0). Цвет точки представляет собой число от 0 до максимального количества цветов минус 1. Эта функция также является очень медленной и вместо неё рекомендуется использовать запись напрямую в видеопамять.
Функция 0DH - возвращает цвет точки экрана в графическом режиме. Координаты X и Y точки заносятся в регистры CX и DX соответственно. В регистр BH заносится номер видеостраницы. Цвет точки возвращается в регистре AL. Эта функция также является очень медленной и вместо неё рекомендуется использовать чтение напрямую из видеопамяти. Функция 0FH - возвращает информацию о текущем видеорежиме. В регистре AL возвращается номер видеорежима, в регистре AH – количество символов в строке, в регистре BH – текущая видеостраница.
Разработка программы, реализующей работу с графическими объектами. Написать программу, выводящую на экран данное изображение (Рисунок – 1) . Реализовать движение объекта на экране влево, вправо, вверх и вниз с помощью клавиш «A», «D», «W», «S». Реализовать движение объекта по диагоналям с помощью клавиш управления курсором. Реализовать изменение цвета закрашенных областей при нажатии клавиш «1» «2» «3» «4» (всего 4 цвета). При нажатии клавиши «Esc» программа завершает свою работу, нажатие всех остальных клавиш игнорируется.
|
Рисунок 1 – Задание курсового проекта.
2.2 Разработка алгоритма
Суть всей программы в том чтобы выводить на экран изображения системного блока, который будет перемещаться по диагоналям и осям. Так же менять цвет в зависимости от выбранной клавиши. Алгоритм такой программы сводится к тому, чтобы каждый раз после нажатия клавиши выводить изображение, но с другими координатами (Рисунок - 2).
Начало
Установка начальных координат
X=220 Y=90
Нет
Нет
Нет
Да
Да
Да
Стр
7
Стр
1
Стр
5
Стр
2
Меняем цвет
На синий
Меняем цвет
На красный
Если нажата клавиша “3”
Если нажата клавиша “2”
Если нажата клавиша “1”
Меняем цвет
На жёлтый
Стр.4
1
Вывод графического объекта
Стр
7
Стр
5
Стр
2
Стр
1
Да
Если нажата клавиша “4”
Меняем цвет
На розовый
Нет
Да
Уменьшаем Х
на 20
Если нажата клавиша “A”
Нет
Да
Увеличиваем Х
на 20
Если нажата клавиша “D
”
Нет
Да
Если нажата клавиша “W”
Уменьшаем Y
на 20
Нет
Да
Увеличиваем Х
на 20
Если нажата клавиша “S”
Нет
Да
Увеличиваем Х
на 20
Если нажата клавиша “S”
Нет
Да
Увеличиваем Х
на 20
Если нажата клавиша “S”
Нет
Стр
6
Стр
4
Стр
3
Стр
6
Стр
4
Стр
3
Да
Уменьшаем
x на 20,
Увеличиваем
Y на20
Если нажата клавиша “влево”
Нет
Да
Увеличиваем
x на 20,
Уменьшаем
Y на20
Если нажата клавиша “вправо”
Нет
Если нажата клавиша “вверх”
Да
Уменьшаем
x на 20,
Уменьшаем
Y на20
Нет
Да
Увеличиваем
x на 20,
Увеличиваем
Y на20
Если нажата клавиша “вниз”
Нет
Если нажата клавиша “ESC”
Нет
Да
конец
Рисунок 2 – Алгоритм основной программы.
Алгоритм вывода главного прямоугольника реализуется путём вывода двух горизонтальных и вертикальных прямых организующих стороны главного прямоугольника (рисунок - 3).
Начало
Считывание начальных
Информация о работе Программирования на языке ассемблера в процессе создания графических примитивов