Предыдущий раздел ПРОСТЫЕ ПРОГРАММЫ НА АССЕМБЛЕРЕ Следующий раздел

10.3. Подготовка программы к выполнению

Текст программы на ассемблере или на любом другом языке программирования называется исходной программой. Для того чтобы преобразовать этот текст в машинную программу, нам нужна помощь не только со стороны транслятора, но и от некоторых других системных программ.

Во-первых, с помощью текстового редактора мы получаем исходный файл программы. Имя исходного файла должно иметь расширение asm. Можно использовать любой редактор, который выдает результирующий текст в коде ASCII. Примерами такого редактора является Edit, запускаемый из командной строки DOS, или текстовый редактор в DOS Navigator. С о з д а й т е  исходный файл Writestr.asm, поместив в него приведенную выше программу на ассемблере.  Убедитесь, что это именно ASCII-файл. Для этого, находясь в DOS, напечатайте:

C:\ > TYPE   Writestr.asm

Вы должны увидеть тот же текст, который ввели в текстовом редакторе. Если вы увидите в вашей программе странные символы, то для ввода текста программ следует использовать другой текстовый редактор. Теперь давайте начнем ассемблировать программу Writestr:

С:\ > nasm  Writestr.asm –o Writestr.com

Ответного сообщения транслятора в случае успешной трансляции не будет:

C:\ >

В результате транслятор-ассемблер создал файл, называющийся Writestr.com, который вы найдете на диске. Конечная часть команды “-o Writestr.com” используется для задания имени результирующему (целевому) файлу (Writestr.com). При отсутствии этой части результирующий файл получит имя Writestr.

Н а п е ч а т а й т е  "Writestr.com", чтобы запустить com-файл и убедитесь, что Ваша программа функционирует правильно (напоминаем, что она должна печатать звездочку на экране).

Теперь введем созданный com-файл в Debug и разассемблируем его, чтобы увидеть получившуюся машинную программу:

С:\ > debug    Writestr.com

_U        

1593:0100      B402          mov   ah,02

1593:0102     В22А          mov   dl,2a

1593:0104     CD21         int         21

1593:0106     CD20         int         20

 

Получили именно то, что мы уже имели в п. 4.3.

 


Предыдущий раздел В начало Следующий раздел