
- •Программное управление — основа автоматизации вычислительного процесса
- •2 Состав машинных команд
- •3 Режимы работы компьютеров
- •3.1 Однопрограммные и многопрограммные режимы
- •I.Система прерываний программ в пк
- •3.2 Адресация регистров и ячеек памяти в пк
- •3.3 Относительная адресация
- •II.Стековая адресация
- •3.4 Элементы программирования на языке ассемблер
- •4 Основные компоненты языка ассемблер
- •4.1Алфавит языка
- •4.2 Константы (числа и строки)
- •4.3 Директивы (псевдооператоры)
- •4.4 Модификаторы
- •4.5 Адресация регистров и ячеек памяти в ассемблере
- •4.6 Непосредственная адресация
- •4.7 Прямая адресация регистров мпп
- •4.8 Адресация ячеек оп
- •Основные команды языка ассемблер
- •A.Команды пересылки данных
- •I.Команды сложения, вычитания и сравнения
- •1.Команды приращения
- •A.Команды умножения
- •I.Команды безусловной передачи данных
- •4.9 Команды перехода к подпрограмме и выхода из подпрограммы
- •4.10 Команда перехода к подпрограмме: call opr
- •4.11 Команда выхода из подпрограммы
- •4.12 Команды условной передачи управления
- •4.13 Команды условной передачи управления для беззнаковых данных
- •4.14 Команды условной передачи управления для знаковых данных
- •4.15 Команды условной передачи управления для прочих проверок
- •4.16 Команды управления циклами
- •4.17 Команды прерывания
- •4.18Основные директивы ассемблера
- •4.19 Директивы определения идентификаторов
- •4.20 Директивы определения данных
- •Директивы определения сегментов и процедур
- •4.21 Директивы управления трансляцией
- •5 Краткие сведения о программировании процедур работы с устройствами ввода-вывода
- •5.1 Программирование работы с дисплеем
- •5.2 Видеооперации с прерыванием 10н bios
- •5.3 Видеооперации с прерыванием 21н dos
- •5.4 Программирование работы с клавиатурой
- •5.5 Программирование работы с принтерами
- •5.6 Печатающие устройства параллельного типа
- •5.7 Печатающее устройство последовательного типа
- •5.8 Программирование работы с файлами
- •5.9 Прерывания, используемые при работе с файлами на дисках
- •5.10 Некоторые аспекты создания исполняемых программ
- •5.11 Процедуры формирования программы
- •5.12 Структура исходной программы на языке ассемблера для получения исполняемой программы .Ехе
- •5.13 Основные сведения о листинге и его структуре
- •5.14 Особенности структуры машинных команд
- •5.14 Последовательность работы пк при выполнении программы
- •6 Краткие сведения об отладчике программ debug
- •6.1 Основные команды отладчика debug
5.10 Некоторые аспекты создания исполняемых программ
Язык ассемблера удобен тем, что, с одной стороны, он позволяет писать программы на уровне команд микропроцессора, с другой стороны, не требует использования и, соответственно, запоминания множества числовых кодов этих команд.
Исходная программа, составленная на языке ассемблера, использующего мнемонические сокращения английских слов и введенная в машину с использованием любого текстового редактора (Word, NC, Brief, Lexicon и т. д.), оформляется в виде файла с расширением .asm; после обработки исходной программы программой-ассемблером (ASM, MASM или TASM) формируется программа в машинных кодах — объектная программа с расширением .obj, уже понятная микропроцессору (ASM выдает только коды ошибок, обнаруженных при трансляции, a MASM дает более развернутую информацию об этих ошибках; MASM в отличие от ASM позволяет использовать в программах команды, ориентированные на использование современных микропроцессоров и сопроцессоров; возможности у TASM еще несколько шире, чем у MASM).
Но объектная программа еще не является законченной и исполняемой микропроцессором: в ней окончательно оформлены еще не все адреса (программа не является «перемещаемой») и не объединены части (блоки) программы, оттранслированные отдельно друг от друга (например, с целью более простой их отладки). Преобразование объектной программы в исполняемую (компоновка объектной программы) выполняется загрузчиком — редактором связей LINK (либо TLINK). Исполняемая программа после загрузки имеет расширение .ехе. Отладку исполняемой программы (.ехе) удобно выполнять с использованием отладчика DEBUG.
5.11 Процедуры формирования программы
Последовательность процедур формирования программы показана на рис. 9.4.
Рис. 9.4. Последовательность процедур формирования программы
Составление программы и ее ввод под каким-нибудь именем на диск (дискету). При вводе программы используется любой текстовый редактор, например ре дактор NC.
Трансляция (ассемблирование) программы. При использовании транслятора MASM вводится
MASM с:prog.asm
или просто
MASM
Появится запрос:
Surce filename [.asm]
Следует указать путь к файлу и имя исходного файла, если оно не было указано ранее. В ответ на Object filename [prog.obj] ввести имя объектной программы (объектного модуля), если оно отличается от исходного файла (иначе, нажать клавишу Enter). Если нужен листинг программы в машинных кодах, в ответ на Source listing [nul .1st] ввести имя дисковода, где его формировать, иначе, нажать клавишу Enter. Для олучения листинга перекрестных ссылок программы в ответ на Cross-reference [nul .erf] ввести имя дисковода, иначе, нажать клавишу Enter.
Альтернативный вариант вызова ассемблера:
MASM [c:]prog, с:, с:, с:.
Листинг — распечатка, файл для распечатки; листинг программы содержит программу исходную и в машинных кодах, а также обнаруженные при трансляции ошибки в программе. Листинг перекрестных ссылок показывает имена переменных и номера строк программы, где эти переменные используются.
3. Компоновка объектного модуля (загрузка и редактирование связей). Вводится
LINK c:prog.obj
или просто
LINK
Появится запрос:
Object modules [.obj]
Следует указать имя файла .obj, если оно не было указано ранее.
Run f 11 е [prog. exe], если имя исполняемой программы другое, то следует его ввести, иначе — Enter.
List file [nul .map], следует ввести CON; map-файл содержит таблицу имен и размер сегментов, а также ошибки, обнаруженные при загрузке; ввод ; CON означает требование вывода их на экран дисплея.
Libraries [ .lib]; обычно Enter (если при редактировании дополнительных библиотек связей не требуется).
Альтернативный вариант вызова загрузчика:
LINK [c:]prog.obj, с:, con
Отладка программы (если есть необходимость). Можно использовать отлад чик DEBUG. Вызов отладчика: DEBUG: DEBUG с: prog. exe.
Выполнение программы.
При наличии приглашения к работе MS-DOS ввести имя программы: с: prog[. exe].