Разработка ассемблерной программы вычисления специальной функцииРефераты >> Программирование и компьютеры >> Разработка ассемблерной программы вычисления специальной функции
4) (clear) Очистка – эта процедура очистки экрана.
5) (cursor) Установка курсора в заданное место
6) (cod) Вычисление порядкового символа производиться перевод в ASCII код
7) (decod) Обратная процедура перевода
8) (error) Обработка ошибок– процедура вывода ошибки при делении на 0
9) (zf) Процедура вывода положительного значения функции и увеличения x на h.
Значение функции Y=
Основное тело программы определено:
begin:
……………
END begin
Текст программы приведён в приложении В.
7 Отладка программы
Отладка и тестирование проводились встроенными средствами интегрированной среды программирования с помощью Turbo Debuger (TD.EXE)
После создания программы возникла необходимость исправить синтаксические и лексические ошибки. Нахождение ошибок осуществлялось попыткой запустить программу, при этом система показывала номер строки ошибки и выводила код данной ошибки. Исправление синтаксических и лексических ошибок осуществлялось при помощи пункта меню Debug, а также с помощью литературы, приведённой в разделе пояснительной записки
Список литературы. После исправления синтаксических ошибок, средствами Отладки, производилась проверка всех путей алгоритма, посредством ввода разнообразных, тестирующих данных. После устранения всех ошибок и недочётов, программа стала отвечать требованиям задания курсового проекта. Дальнейшая отладка и тестирование программы на этом прекратилось.
8 Описание языка программирования
В задании на курсовое проектирование в качестве языка программирования указан язык Ассемблер. Язык Ассемблера – это язык программирования низкого уровня, приближенный к системе команд процессора ЭВМ.
Турбо Ассемблер фирмы Borland представляет собой многопроходный ассемблер с разрешением опережающих ссылок, скоростью ассемблирования до 48000 строк в минуту (на компьютере IBM PS/2, модель 60), совместимый с макроассемблером фирмы Microsoft MASM и дополнительной возможностью использования режима расширенного синтаксиса Ideal. Независимо от вашего опыта в программировании вы, несомненно, оцените эти особенности, а также ряд других средств, которые значительно облегчают программирование на Ассемблере. Турбо Ассемблер является мощным ассемблером, работающим с командной строкой, который воспринимает ваши исходные файлы (файлы с расширением .ASM) и создает из них объектные модули (файлы с расширением .OBJ). После этого вы можете использовать программу-компоновщик фирмы Borland TLINK.EXE, отличающуюся высокой скоростью компоновки, для компоновки полученных объектных модулей и создания выполняемых файлов (файлов с расширением .EXE).
Требования к программному и аппаратному обеспечению
Турбо Ассемблер работает на компьютерах семейства IBM PC, включая модели XT, AT и PS/2, а также на полностью совместимых с ними компьютерах. Для работы Турбо Ассемблера требуется операционная система MS-DOS (версии 2.0 или более поздняя) и не менее 256К оперативной памяти.
Турбо Ассемблер генерирует инструкции процессоров 8086, 80186, 80286, 80386 и i486, а также инструкции с плавающей точкой для арифметических сопроцессоров 8087, 80287 и 80387. (Подробнее об инструкциях процессором семейства 80х86/80х87 рассказывается в книгах фирмы Intel.)
Поддержка DPMI
Турбо Ассемблер поддерживает спецификацию Интерфейса защищенного режима DOS (DOS Protected Mode Interface - DPMI). Будучи разработанным комитетом ведущих компаний-производителей программного и аппаратного обеспечения (включая Borland), DPMI определяет стандартный интерфейс, полностью использующий преимущества средств защищенного режима процессоров 80286, 386 и i486.
По мере увеличения числа компьютеров на базе процессоров 386 и i486 растет и число программных продуктов, использующих возможности этих процессоров. Защищенный и виртуальный 8086 режимы данных процессоров означают изменение самого вычислительного процесса. Теперь мы можем использовать многозадачный режим и средства расширенной памяти. Раньше организация работы прикладной программы, использующей расширенную память, в многозадачном режиме с другим программным обеспечением представляла собой проблему. Стандарт DPMI решает эту проблему. Прикладные программы, использующие расширенную память, разработанные в стандарте DPMI, будут надежно работать в многозадачных системах.
В настоящее время Турбо Ассемблер использует сервисные средства DPMI, предлагаемые Microsoft Windows. Турбо Ассемблер может работать в операционной среде, использующей средства DPMI. Если вы решите перейти на новую операционную среду, в которой эти сервисные средства доступны, то ваши затраты на программное обеспечение себя оправдают.
Примечание: Стандарт DPMI поддерживает версия Турбо Ассемблера TASMX.EXE.
Известно, что программы, выполняемые под управлением MS-DOS, могут быть одного из двух типов: COM или EXE. Основное различие этих типов заключается в том, что программы типа COM состоят из единственного сегмента памяти, в котором размещаются программные коды, данные и стек, то есть программа этого типа не может занимать объем памяти более 64 Кбайт. Программы типа ЕХЕ не ограничены по объему памяти и для хранения программных кодов, данных и стека используют разные сегменты памяти. В формате СОМ пишутся специфические программы (обработчики прерываний, резидентные программы).
9 Руководство системного программиста
Программа написана в виде com модуля. Имеет в себе следующие процедуры
Clear, cursor, oput, inp, error, zf, cod, decod.
Опишем принцип работы программы
Вывод сообщения о начале работы программы:
mov dx,0000h ;в регистр dx заносим координаты курсора (0 строка)
call cursor ;вызов процедуры установки курсора
lea dx,T0 ;загружаем подсказку (сообщение о разработчике)
call oput ;вызов процедуры вывода на экран
и т.д. нужное количество раз со смещением курсора вниз.
Аналогично производится ввод для B, C, x, y, h
Вычисление функции производится с использованием команд SUB, MUL, DIV, запись переменных и временных результатов осуществляется командой
Опишем подробнее процедуры, применяющиеся в программе
1. Процедура очистки экрана:
clear proc ;процедура очистки экрана
mov AH,6h ;переносим в регистр AH 06h
mov BH,07h ;переносим в регистр BH 07h
mov CX,0000h ;переносим в регистр CX 0000h
mov DX,184fh ;переносим в регистр DX 184fh
int 10h ;прерывание BIOS
ret ;выход из процедуры
clear endp
2. Процедура установки курсора:
cursor proc ;процедура установки курсора
mov AH,2h ;переносим в регистр AH 2h
mov BH,0 ;переносим в регистр BH 0
int 10h ;прерывание BIOS
ret ;выход из процедуры
cursor endp
3. Процедура вывода:
oput proc ;процедура вывода
mov AH,09h ;переносим в регистр AH 09h
int 21h ;прерывание DOS
ret ;выход из процедуры
oput endp
4. Процедура перевода введённого значения с клавиатуры.
cod proc ;процедура перевода введённого значения с клавиатуры