Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовой проект [вариант 16]

.DOC
Скачиваний:
31
Добавлен:
02.05.2014
Размер:
88.58 Кб
Скачать

Задание на проектирование.

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

Содержание

Введение 3

Схема алгоритма 5

Текст программы с необходимыми комментариями 6

Заключение 7

Список литературы 8

Приложение 1 9

Приложение 2 10

Введение

Распространение микрокомпьютеров послужило причиной пересмотра отношения к языку ассемблера по нескольким причинам. Ассемблерные программы могут быть очень эффективными. Из программистов, с равными навыками и способностями, работающий на языке ассемблера создаст программу более компактную и быстродействующую, чем такая же программа, написанная на языке высокого уровня. Это так практически для всех небольших или средних программ. К сожалению, по мере возрастания размеров, программы на языке ассемблера теряют часть своих преимуществ. Это происходит из-за необходимого в ассемблерной программе внимания к деталям. В небольших программах это позволяет оптимизировать работу программы с аппаратными средствами. В больших же программах огромное количество деталей может помешать вам эффективно работать над самой программой, даже если отдельные компоненты программы окажутся очень неплохими. Безусловно, программирование на языке ассемблера отвечает потребностям не каждой программы. Программы на языке ассемблера очень точны. Поскольку этот язык позволяет программисту непосредственно работать со всем аппаратным обеспечением, ассемблерная программа может делать то, что недоступно никакой другой программе. Несомненно, что в программировании устройств ввода-вывода, где требуется контроль над отдельными разрядами регистров устройства, программирование на языке ассемблера - единственный подходящий выбор.

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

В данном курсовом проекте поставлена цель изучения возможностей операционной системы MS-DOS и освоить основы системного программирования с помощью ассемблера. Изучение функций DOS и BIOS, которые являются основными компонентами операционных систем персональных компьютеров, позволит более подробно рассмотреть те процессы, которые протекают в системе при выполнении программы; ознакомиться с механизмом программных прерываний, с помощью которых происходит обращение к этим функциям.

Схема алгоритма

да

да

нет

нет

Текст программы с необходимыми комментариями

Листинг программы без комментариев представлен в приложении 1.

0B42:0100 B400 MOV AH,00 ; Установка графического режима

0B42:0102 B00E MOV AL,0E ; 16-цветовой графический режим

0B42:0104 CD10 INT 10 ; Передача управления в BIOS

0B42:0106 BB0500 MOV BX,0005 ; Установка начального цвета

0B42:0109 B91000 MOV CX,0010 ; Установка начального столбца

0B42:010C BA1000 MOV DX,0010 ; Установка начальной строки

0B42:010F B40C MOV AH,0C ; Функция вывода точки

0B42:0111 88D8 MOV AL,BL ; Установить цвет

0B42:0113 CD10 INT 10 ; Передача управления в BIOS

0B42:0115 42 INC DX ; Увеличить строку

0B42:0116 83FA20 CMP DX,+20 ; Строка №20?

0B42:0119 76F4 JBE 010F ; Переход, если ниже или равно

0B42:011B BA1000 MOV DX,0010 ; Сброс строки на начальное значение

0B42:011E 83C110 ADD CX,+10 ; Увеличиваем столбец на 10(h)

0B42:0121 FEC3 INC BL ; Увеличиваем значение цвета

0B42:0123 81F90F01 CMP CX,010F ; Столбец №10F?

0B42:0127 76E6 JBE 010F ; Переход, если ниже или равно

0B42:0129 81E90001 SUB CX,0100 ;Вычитаем из значения столбца 100(h)

0B42:012D 41 INC CX ; Увеличиваем значение столбца

0B42:012E 83F920 CMP CX,20 Столбец №20?

0B42:0131 72DC JB 010F ; Переход, если ниже

0B42:0133 BB0200 MOV BX,0002 ;Установка начального цвета

0B42:0136 B90000 MOV CX,0000 ; Установка начального столбца

0B42:0139 BA2100 MOV DX,0021 ; Установка начальной строки

0B42:013C B40C MOV AH,0C ; Функция вывода точки

0B42:013E 88D8 MOV AL,BL ; Установить цвет

0B42:0140 CD10 INT 10 ; Передача управления в BIOS

0B42:0142 41 INC CX ; Увеличиваем значение столбца

0B42:0143 81F94001 CMP CX,0140 ; Столбец №140?

0B42:0147 75F3 JNZ 013C ; Переход, если не равно

0B42:0149 B90000 MOV CX,0000 ; Сброс значения столбца на начальное значение

0B42:014C 42 INC DX ; Увеличить строку

0B42:014D 83FA24 CMP DX,+24 ; Строка №20?

0B42:0150 75EA JNZ 013C ; Переход, если не равно

0B42:0152 B400 MOV AH,00 ; Выполнить ввод с клавиатуры

0B42:0154 CD16 INT 16 ; Передача управления в BIOS

0B42:0156 3C2A CMP AL,1B ; Скэн-код для клавиши Esc?

0B42:0158 7409 JZ 015E ; Переход, если равно

0B42:015A 3C4F INC BL ; Увеличиваем значение цвета

0B42:015C 74F4 JMP 0136 ; Безусловный прыжок

0B42:015E FEC3 RET ; Вернуться

Заключение

В результате разработки данного курсового проекта была создана программа, удовлетворяющая требованиям задания. Также изучены возможности базовой системы ввода-вывода при выводе графической информации на экран монитора и получены основы системного программирования с помощью ассемблера. Рассмотрен механизм работы прерываний BIOS.

Список литературы

  1. Методические указания для курсового проектирования по курсу «Системное программное обеспечение»/Уфимск.гос.авиац.техн.ун-т; Сост.:О.Д.Лянцев – Уфа, 1997 – 27 с.

  2. Абель П. Язык Ассемблера для IBM PC и программирования /Пер. с англ. Ю.В.Сальникова – М.; Высшая школа 1991 – 447 с.:ил.

  3. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT: Пер. с англ./Предисл. Н.В.Гайского – М.: Финансы и статистика, 1991 – 544 с.:ил.

  4. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера: Пер. с англ. – М.: Радио и связь, 1989 – 336с.:ил.

  5. Стандарты в программной документации: Методические указания к курсовому и дипломному проектированию для студентов всех специальностей. – Уфа: УАИ, 1987 – 35с.

Приложение 1

Листинг программы.

0B42:0100 B400 MOV AH,00

0B42:0102 B00E MOV AL,0E

0B42:0104 CD10 INT 10

0B42:0106 BB0500 MOV BX,0005

0B42:0109 B91000 MOV CX,0010

0B42:010C BA1000 MOV DX,0010

0B42:010F B40C MOV AH,0C

0B42:0111 88D8 MOV AL,BL

0B42:0113 CD10 INT 10

0B42:0115 42 INC DX

0B42:0116 83FA20 CMP DX,+20

0B42:0119 76F4 JBE 010F

0B42:011B BA1000 MOV DX,0010

0B42:011E 83C110 ADD CX,+10

0B42:0121 FEC3 INC BL

0B42:0123 81F90F01 CMP CX,010F

0B42:0127 76E6 JBE 010F

0B42:0129 81E90001 SUB CX,0100

0B42:012D 41 INC CX

0B42:012E 83F920 CMP CX,20

0B42:0131 72DC JB 010F

0B42:0133 BB0200 MOV BX,0002

0B42:0136 B90000 MOV CX,0000

0B42:0139 BA2100 MOV DX,0021

0B42:013C B40C MOV AH,0C

0B42:013E 88D8 MOV AL,BL

0B42:0140 CD10 INT 10

0B42:0142 41 INC CX

0B42:0143 81F94001 CMP CX,0140

0B42:0147 75F3 JNZ 013C

0B42:0149 B90000 MOV CX,0000

0B42:014C 42 INC DX

0B42:014D 83FA24 CMP DX,+24

0B42:0150 75EA JNZ 013C

0B42:0152 B400 MOV AH,00

0B42:0154 CD16 INT 16

0B42:0156 3C2A CMP AL,1B

0B42:0158 7409 JZ 015E ;

0B42:015A 3C4F INC BL

0B42:015C 74F4 JMP 0136

0B42:015E FEC3 RET

Приложение 2

10

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.