Программирование на языке ассемблера

Разработка программы видеоконтроллера с помощью ассемблера. Анализ различий между программами в EXE и COM-файлах. Построение блок-схемы программы, описание ее функций. Анализ типов графических режимов. Рекомендации по дальнейшему развитию программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 31.10.2017
Размер файла 40,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

1. РАЗЛИЧИЯ МЕЖДУ ПРОГРАММАМИ В EXE и COM-файлах

Несмотря на то, что EXE2BIN преобразует EXE-файл в COM-файл, существуют определенные различия между программой, выполняемой как EXE-файл и программой, выполняемой как COM-файл.

Размер программы. EXE-программа может иметь любой размер, в то время как COM-файл ограничен размером одного сегмента и не превышает 64К. COM-файл всегда меньше, чем соответствующий EXE-файл; одна из причин этого - отсутствие в COM-файле 512-байтового начального блока EXE-файла.

Сегмент стека. В EXE-программе определяется сегмент стека, в то время как COM-программа генерирует стек автоматически. Таким образом при создании ассемблерной программы, которая будет преобразована в COM-файл, стек должен быть опущен. программа ассемблер графический

Сегмент данных. В EXE программе обычно определяется сегмент данных, а регистр DS инициализируется адресом этого сегмента. В COM-программе все данные должны быть определены в сегменте кода.

Инициализация. EXE-программа записывает нулевое слово в стек и инициализирует регистр DS. Так как COM-программа не имеет ни стека, ни сегмента данных, то эти шаги отсутствуют. Когда COM-программа начинает работать, все сегментные регистры содержат адрес префикса программного сегмента (PSP), - 256-байтового (шест. 100) блока, который резервируется операционной системой DOS непосредственно перед COM или EXE программой в памяти. Так как адресация начинается с шест. смещения 100 от начала PSP, то в программе после оператора SEGMENT кодируется директива ORG 100H.

Обработка. Для программ в EXE и COM форматах выполняется ассемблирование для получения OBJ-файла, и компоновка для получения EXE-файла. Если программа создается для выполнения как EXE-файл, то ее уже можно выполнить. Если же программа создается для выполнения как COM-файл, то компоновщиком будет выдано сообщение:

Warning: No STACK Segment

(Предупреждение: сегмент стека не определен)

Это сообщение можно игнорировать, так как определение стека в программе не предполагалось. Для преобразования EXE-файла в COM-файл используется программа EXE2BIN. Предположим, что EXE2BIN имеется на дисководе A, а скомпонованный файл по имени CALC.EXE - на дисководе B.

Введите

EXE2BIN B:CALC,B:CALC.COM

Так как первый операнд всегда предполагает EXE файл, то можно не кодировать тип EXE. Второй операнд может иметь другое имя (не CALC.COM). Если не указывать тип COM, то EXE2BIN примет по умолчанию тип BIN, который впоследствии можно переименовать в COM. После того как преобразование будет выполнено можно удалить OBJ- и EXE-файлы.

Если исходная программа написана для EXE-формата, то можно, используя редактор, заменить команды в исходном тексте для COM файла.

2. БЛОК-СХЕМА ПРОГРАММЫ

Рис 1. Блок-схема программы

3. ОПИСАНИЕ ФУНКЦИЙ ПРОГРАММЫ

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

- монохромный (1-битное кодирование);

- 16-цветный EGA/VGA (4-битное кодирование);

- 256-цветный SVGA (8-битное кодирование);

- HiColor (16-битное кодирование);

- TrueColor (24-битное / 32-битное кодирование).

Графические режимы VGA (SVGA) сильно устарели, а текстовые продолжают успешно применяться (см. табл. 3.2 п. 8.2.3).

Всё, что изображено на мониторе - графика, текст - одновременно присутствует в памяти, встроенной в видеоадаптер. Для того чтобы изображение появилось на мониторе, оно должно быть записано в память видеоадаптера. В текстовом режиме для VGA-совместимых систем для видеопамяти отводится адресное пространство (исключая 7-й видеорежим с монохромным адаптером), начинающееся с логического адреса B800h:0000h и заканчивающееся адресом BF00h:0FFFh. Данная область разбивается на 8 секторов по числу видеостраниц (4 Кбайта на страницу). Таким образом, постраничное деление адресного пространства видеопамяти в текстовом режиме имеет следующий вид:

- B800h:0000h - страница 0, смещение в диапазоне 0000h - 0FFFh

- B900h:0000h - страница 1, смещение в диапазоне 0000h - 0FFFh

- ...........

- BF00h:0000h - страница 7, смещение в диапазоне 0000h - 0FFFh

На экране отображается видеобуфер, соответствующий активной странице. В текстовых режимах для изображения каждого символа отводится 2 байта: байт с ASCII-кодом символа и байт с его атрибутом. При этом по адресу B800h:0000h находится байт с кодом символа (левый верхний угол экрана), а в B800h:0001h - атрибут этого символа; B800h:0002h - код второго символа, а в B800h:0003h - атрибут второго символа и т.д. Вообще при формировании изображения непосредственно в видеобуфере, в обход программ DOS и BIOS, все управляющие коды ASCII теряют свои управляющие функции и отображаются в виде соответствующих символов.

4. ЛИСТИНГ ПРОГРАММЫ

text segment 'code'

assume CS:text, DS:text

org 100h

begin:

; clear screen

mov AH, 09

lea DX, clr_msg

int 21h

lea DI, txt[57]

mov AX, word ptr _size

call PARSE_BYTE

mov AX, 0b800h

mov DS, AX

lea BP, txt

mov DI, 00

b1: mov AH, 07h

mov AL, byte ptr [BP]

cmp AL, 30h

jae b2

jmp g1

b2: cmp AL, 39h

jbe c1

jmp g1

c1: mov AH, 41h

g1: mov DS:[DI], AX

add DI, 02

inc BP

cmp DI, (txt_len*2)

jb b1

_END:

mov AH, 08h

int 21h

; выход из программы в DOS

mov AX, 4c00h

int 21h

PARSE_BYTE proc

mov CX,0010

СA:

cmp AX,0010

jb CB

xor DX,DX

div CX

or DL,30H mov [DI],DL

dec DI

jmp СA

CB:

or AL,30H

mov [DI],AL

ret

PARSE_BYTE endp

ЗАКЛЮЧЕНИЕ

В планах дальнейшего развития программы можно предположить возможность выделения цветовым полем также специальных сиволов.

Модифицировав программу, можно использовать её для подсветки синтаксиса, что увеличит эффективность восприятия текстовой информации пользователем.

СПИСОК ЛИТЕРАТУРЫ

1. Абель П. Язык Ассемблера для IBM PC и программирования / Пер. с англ. Ю.В.Сальникова.- М.: Высшая школа, 1992.

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

3. Финогенов К.Г. Самоучитель по системным функциям MS-DOS. - Изд.2, перераб. и дополн. - М.: Радио и связь, Энтроп, 1995 2, 382 с., ил.

4. Фролов А.В., Фролов Г.В. MS-DOS для программиста - М.: ДИА- ЛОГ-МИФИ, 1995 2, 0 - 256 с. - (Библиотека системного программиста; т. 18)

5. Фролов А.В., Фролов Г.В. MS-DOS для программиста. Часть 2 - М.: ДИАЛОГ-МИФИ, 1995 2, 0 - 256 с. - (Библиотека системного программиста; т. 19)

6. Нортон П. Программно-аппаратная организация IBM PC: Пер. с англ. - М.: Радио и связь, 1991 2, 0-328 с.: ил.

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

8. Шнайдер А. Язык асссемблера для персонального компьютера фирмы IBM: Пер. с англ.- М.: Мир, 1988 2, 0 - 406 с., ил.

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

Размещено на Allbest.ru

...

Подобные документы

  • Исследование арифметических, логических и вспомогательных операций, выполняемых микропроцессором. Построение блок-схемы инициализации резидентной программы и тела резидента. Характеристика основных особенностей написания программы на языке ассемблера.

    лабораторная работа [67,8 K], добавлен 20.11.2012

  • Выбор режимов адресации, посредством которых будет осуществлен доступ к данным. Этапы создания программы. Характеристика таблицы символов и полученного файла листинга. Анализ изменения состояния регистра IP при выполнении команд JMP, Jcc, LOOPx.

    курсовая работа [4,9 M], добавлен 25.03.2012

  • Общие сведения о языке ассемблера. Назначение команды прерывания INT число. Описание логической структуры программы: алгоритм работы, используемые методы, входные и выходные данные. Структура и тестирование программы. Руководство оператора программы.

    курсовая работа [90,0 K], добавлен 01.12.2009

  • Интегрированная среда программирования C++ Builder 6. Методы вычерчивания графических примитивов. Основные свойства инструментов рисования. Разработка рисунка паутины с центром в точке с произвольным числом лучей. Алгоритм программы в виде блок-схемы.

    курсовая работа [842,5 K], добавлен 13.10.2017

  • Процесс трансляции программы на языке ассемблера в объектный код. Разработка интерфейса для взаимодействия и связи программ. Понятие компиляции. Структура модели микропроцессора. Пример структуры двухбайтной команды. Арифметическо-логичесткие операции.

    дипломная работа [3,3 M], добавлен 26.11.2012

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

    курсовая работа [1,5 M], добавлен 17.03.2014

  • Программирование в операционной системе Windows. Работа с потоками и процессами ОС. Методы их создания. Основы вызова API-функций. Пример создания диалогового окна без использования файла ресурсов. Разработка программы с помощью 32-битного ассемблера.

    курсовая работа [107,6 K], добавлен 18.05.2014

  • Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.

    курсовая работа [742,6 K], добавлен 03.07.2011

  • Программирование логических игр с помощью подходов СИИ. Методы работы с Windows Forms в языке С#, алгоритм поиска в пространстве состояний. Формализация дерева состояний. Описание использованных алгоритмов. Иерархическая схема и блок-схемы программы.

    курсовая работа [1,7 M], добавлен 01.12.2015

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.

    курсовая работа [67,6 K], добавлен 20.11.2012

  • Разработка гипотетической машины при помощи макросредств ассемблера. Разработка алгоритма для реализации обязательных команд: сравнения двух символьных строк; их обмена; определения длины слова. Основные функции обработки строки, листинг программы.

    курсовая работа [59,6 K], добавлен 14.07.2012

  • Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.

    курсовая работа [294,0 K], добавлен 08.09.2008

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Изучение некоторых аспектов языка Ассемблера и ЭВМ в целом. Построение алгоритмов решения поставленной задачи на языках программирования Си, Ассемблер УМ и IBM PC. Составление блок-схем решений и написание программ на каждом из перечисленных языков.

    курсовая работа [691,5 K], добавлен 20.10.2014

  • Изучение категории типов данных, видов выражений и операций, работа на языке Си. Составление программы вычисления значения функции у(х) при произвольном значении х. Блок-схема алгоритма. Описание текста программы и рассмотрение контрольного примера.

    лабораторная работа [124,7 K], добавлен 09.01.2012

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

    контрольная работа [231,8 K], добавлен 15.08.2012

  • Программирование игр с использованием визуальных компонентов. Описание операторов, используемых при практической реализации разработанной программы. Работа над созданием программы "Морской бой", постановка задачи, алгоритм реализации работы, блок-схема.

    курсовая работа [175,9 K], добавлен 10.05.2010

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

    курсовая работа [532,7 K], добавлен 20.07.2014

  • Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.

    лабораторная работа [43,1 K], добавлен 21.07.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.