Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Финогенов-основы_языка_ассемблера.doc
Скачиваний:
26
Добавлен:
17.09.2019
Размер:
3.35 Mб
Скачать

Глава 2. Основы программирования

2.1. Подготовка и отладка программы

Процесс подготовки и отладки программы на языке ассемблера вклю!| чает этапы подготовки исходного текста, трансляции, компоновки и orlf ладки. w

Подготовка исходного текста программы выполняется с помощью любого текстового редактора, хотя бы редактора, встроенного в програм­му Norton Commander, или еще более удобного редактора Norton Editor. При использовании одного из более совершенных текстовых процессо­ров, вроде Microsoft Word, следует иметь в виду, что эти программы до­бавляют в выходной файл служебную информацию о формате (размер страниц, тип шрифта и др.), которая будет непонятна транслятору. Одна­ко практически вес текстовые редакторы и процессоры позволяют выве­сти в выходной файл «чистый текст», без каких-либо служебных симво­лов. Именно таким режимом и надлежит воспользоваться в нашем случае. В принципе для подготовки исходного текста можно воспользоваться любым редактором системы Windows, например, программой Word Pad или Блокнотом. Однако в этом случае возникнут неприятности с русским шрифтом. Как известно, корпорация Microsoft приняла для своих руси­фицированных продуктов собственную кодировку русских символов, рас­ходящуюся со стандартной, используемой в приложениях DOS. Если про­грамму, использующую русский текст в качестве комментариев, или вы­водящую его на экран, подготовить в одном из редакторов Windows, то при ее просмотре и запуске в среде DOS вместо русского текста вы увиди­те бессмысленный набор символов. Поэтому программы, предназначен­ные для выполнения под управлением MS-DOS, лучше и подготавливать в среде DOS. Файл с исходным текстом должен иметь расширение .ASM. Следующая операция состоит в трансляции исходного текста програм­мы, т.е. в преобразовании строк исходного языка в коды машинных ко­манд. Эта операция выполняется с помощью транслятора с языка ассем­блера (т.е. с помощью программы ассемблера). Известные разработчики программного обеспечения — корпорации IBM, Borland, Microsoft и др. предлагают свои варианты трансляторов, несколько различающиеся сво­ими возможностями и системой обозначений. Однако входной язык лю­бого транслятора, включающий в себя мнемонику машинных команд и других операторов и правила написания предложений ассемблера, для всех ассемблеров одинаков, поэтому при подготовке и отладке примеров данной книги можно с равным успехом воспользоваться любой из ука­занных программ. Мы, как уже отмечалось, использовали программы па­кета TASM 5.0 (фирменные названия этих программ — Turbo Assembler,

Turbo Link и Turbo Debugger, а имена соответствующих им файлов — TASM.EXE, TLINK.EXE и TD.EXE).

После трансляции образуются два файла — листинг трансляции и объектный файл с расширением OBJ. Листинг представляет собой тексто­вый файл, предназначенный для чтения в каком-либо редакторе, и со­держит исходный текст оттранслированной программы вместе с машин­ными кодами команд. В случае обнаружения транслятором каких-либо ошибок, в листинг также включаются сообщения об этих ошибках.

Рассмотрим элементы листинга трансляции примера 1-1 из предыду­щей главы. На рис. 2.1 приведен несколько сокращенный текст этого лис­тинга, из которого удалены комментарии к отдельным предложениям.

Номера предложений ассемблера

Смещения команд относительно начала сегмента

Машинные коды команд

Исходный текст программы

;Опишем сегмент команд assume CS:code,DS:data code segment begin: mov AX,data

mov DS,AX кета на экран

mov AH,09h

BS OOOOs

SE D8

mov int

DX,offset msg

21

10

11

12 13

mov int

;Выведем строку т 0005 В4 09 0007 ВА ООООг ООСА CD 21 ; Завершим nporpai.ii.ry ОООС BS 4COO OOOF CD 21 ООН code

ends

'— Размер сегмента команд в байтах

;Опишем сегмент данных

15

0000 data segment

Коды символов, образующих сообщение

16 17 18 19

SF ЕО АЕ A3 ЕО АО АС+ msg db 'Программа работает-'S

0014

t_

АС АО 20 ЕО АО А1 АЕ4- Е2 АО А5 Е2 21 24

data ends

; Опишем сегмент стека


Р азмер сегмента данных в байтах

segment 256 dup

ends

24

Размер сегмента стека в байтах

end begin

Рис. 2.1. Листинг трансляции программы 1-1.