Технология разработки программ на машинно-ориентированном языке.




Создание файла с исходным текстом обычно выполняется с помощью редактора текстов. Все исходные файлы должны иметь определенное расширение спецификации. Например, prg.asm

Первым этапом обработки программы, написанной на языке ассемблера, является трансляция. Если трансляция прошла успешно, то система формирует и сохраняет для последующего использования объектный модуль, имя которого имеет определенное расширение. Prg.obj

Вторым этапом обработки программы является операция редактирования связей, формирующая исполняемый модуль, или программу в машинных кодах, готовую к выполнению. В процессе редактирования объектный модуль(представляющий собой исходный модуль в машинных кодах) объединяется с разными системными модулями или дополнительными программами. В результате создается файл, который имеет расширение.tcp

Таким образом, разработка программ на машинно-ориентированном языке состоит из следующих шагов:

1. Создание исходного текста программы с использованием текстового редактора.

2. Создание объектного модуля. Трансляция программы

3. Создание загрузочного модуля. Компоновка программы

4. Отладка программы с использованием программ-отладчиков

 

 

Основная учебная литература

1. П. Абель Язык ассемблера для IBM PC и программирования. М. «Высшая школа», 1992, 447с.

2. Гук Михаил Процессоры Intel: от 8086 до Pentium II: Архитектура. Интерфейс. Программирование / М. Гук. - СПб. и др.: Питер, 1998. - 220с.

3. Бек Л. Введение в системное программирование. - М.: Мир, 1988

4. Пирогов В. Ассемблер в примерах. – Спб: БХВ, 2005. – 416 с.

5. Пильщиков В.Н. Программирование на языке ассемблера IBM PC. – М.: «Диалог-МИФИ», 1999. – 288 с.

6. Юров В. Assembler: Спец. справ. / В. Юров. - СПб. и др.: Питер, 2000. - 489с.: ил.

 

Электронные образовательные ресурсы:

Ресурсы ИрГТУ, доступные в библиотеке университета и в локальной сети.

Ресурсы сети Интернет

https://lite-programming.ru/


Приложение №1. Макрокоманды из библиотеки MAC.lib

1. Адресация курсора

CLS

ДЕЙСТВИЕ Очищает экран.

 

CRLF

ДЕЙСТВИЕ Возврат каретки и переход к следующей строке; перемещает

курсор к началу следующей строки.

 

HOME

ДЕЙСТВИЕ Перемещает курсор в левый верхний угол экрана.

 

2. Вывод изображений на экран

MESSAGE ИМЯ-СТРОКИ

ДЕЙСТВИЕ Изображает на экране строку символов, находящуюся

в сегменте данных.

ВХОДНЫЕ ЗНАЧЕНИЯ ИМЯ-СТРОКИ.

ФОРМАТ СТРОКИ Строка должна заканчиваться символом $.

Например ILLEGAL DB Ошибочное значение.

ВЫХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют.

 

MESSAGE_DX

ДЕЙСТВИЕ Изображает на экране строку символов из сегмента данных,

смещение которой содержится в регистре DX.

ВХОДНЫЕ ЗНАЧЕНИЯ (DS:DX)=начальный адрес строки символов.

ФОРМАТ СТРОКИ Тот же, что и для MESSAGE.

PRINT_AL

ДЕЙСТВИЕ Изображает символ, код которого содержится в регистре AL,

затем перемещает курсор в следующую позицию.

ВХОДНЫЕ ЗНАЧЕНИЯ (AL)=код символа.

Содержимое регистра AL не изменяется.

 

PRINT_NUMBER

ДЕЙСТВИЕ Изображает число со знаком, содержащимся в регистре AX.

ВХОДНЫЕ ДАННЫЕ (AX)=изображаемое число.

ВЫХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют; содержимое регистра AX не изменяется.

 

SHOW_AL

ДЕЙСТВИЕ Изображает символ, код которого содержится в регистре AL,

но не перемещает курсор.

ВХОДНЫЕ ЗНАЧЕНИЯ (AL)=код символа.

ВЫХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют; содержимое регистра (AL) не изменяется.

Ввод данных с клавиатуры

INKEY

ДЕЙСТВИЕ Ожидает нажатия на клавишу, затем считывает ее ASCII-код

в регистр AL и изображает соответствующий ему символ

на экране.

ВХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют.

ВЫХОДНЫЕ ЗНАЧЕНИЯ (AL)=ASCII-код клавиши.

ПРИМЕЧАНИЯ 1.Для считывания кода клавиши без изображения символа

используйте макроопределение INKEY_I.

 

INKEY_I

ДЕЙСТВИЕ Ожидает нажатия на клавишу, затем считывает ее ASCII-код

в регистр AL, но символ на экране не изображает.

ВХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют.

ВЫХОДНЫЕ ЗНАЧЕНИЯ (AL)=ASCII-код клавиши.

ПРИМЕЧАНИЯ 1.Для изображения считанного вами символа используйте

макроопределение INKEY.

 

IN$ ИМЯ-СТРОКИ

ДЕЙСТВИЕ Считывает последовательность набираемых на клавиатуре

символов в буфер, находящийся в сегменте данных.

ВХОДНЫЕ ЗНАЧЕНИЯ ИМЯ-СТРОКИ=имя буфера.

ФОРМАТ БУФЕРА Буфер должен быть на три байта длиннее, чем

помещаемая в него строка; первый байт определяет

максимально возможную длину строки плюс один.

Например, следующий буфер способен воспринять строки

длиной до 10 символов:

STRING_BUFF DB 11,12 DUP(?)

ВЫХОДНЫЕ ЗНАЧЕНИЯ Второй байт буфера содержит фактическую длину

считанной строки(в байтах).

ПРИМЕР IN$ STRING_BUFF; Считать символы в буфер

 

KEY_$2BIN

ДЕЙСТВИЕ Преобразует последовательность набранных на клавиатуре

символов в число со знаком, помещаемое в регистр AX.

ВХОДНЫЕ ЗНАЧЕНИЯ Отсутствуют.

ВЫХОДНЫЕ ЗНАЧЕНИЯ Если последовательность символов допустима, то CF=0

и (AX)=полученное число. Если недопустима, то СF=1.

ПРИМЕР KEY_$2BIN; Ввести число с клавиатуры

JC PRINT ERROR

 

 

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

Министерство образования и науки РФ

 

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

 

Кафедра вычислительной техники

 

 

Допускаю к защите

Руководитель Л.Л. Куликова

подпись, И.О. Фамилия

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: