Часть 2.Созданиеисполняемого файла.Exe

Порядок выполненияработы

1. Ввести готовую программу и создать програмный файлсрасширением ASM (на дисководе C:).

Используя текстовыйредактор NC(или любой другой редактор) построчноввести текст приведеннойниже программы prog3.asm.

TITLEprog3.asm ;расчетфакториала

stacksg segment stack

dw 32 dup(32)

stacksg ends

datasgsegment

vv db'Введите аргумент M (не больше 7)$'

vivdb13,10,'Значение факториала $'

iidw?

ir dw1

sr db5 dup(0)

db13,10,'$'

ft10db1

bufdb2,0,0,0,0

datasgends

codesgsegment

assume cs:codesg,ds:datasg,ss:stacksg

startprocfar

pushds

sub ax,ax

pushax

mov ax,datasg

mov ds,ax

movah,9

movdx,offset vv

int21h

movah,0ah

movdx,offset buf

int21h

call str2bin

rach: movax,ii

mulir

movir,ax

decii

cmpii,2

jgerach

movah,9

movdx,offset viv

int21h

call bin2str

movah,9

movdx,si

int21h

ret

bin2str proc

mov cx,10

mov si,offset sr+4

mov ax,ir

m1: sub dx,dx

div cx

ordl,30h

mov [si],dl

dec si

cmp ax,0

jne m1

ret

bin2str endp

str2bin proc near

movcx,10

leasi,buf+1

xor bh,bh

mov bl,[buf+1]

m3:mov al,[si+bx]

and ax,0fh

mul ft10

add ii,ax

mov al,ft10

mul cl

mov ft10,al

dec bx

jnz m3

ret

str2bin endp

start endp

codesg ends

end start

Проверить и отредактировать программу,сформировать програмныйфайлдля ассемблирования.

2. Выполнить ассемблирование программы. Вызвать наисполнениепрограмму ассемблера:C> MASM. На экране появится полное название программы ассемблера , ее версии и запрос на получениеинформацииофайлах, участвующих в ассемблировании(в [..] предлагаются вводимые поумолчанию ответы):

Source filename[.asm]:

введите:C:prog3 (после ответа всегданажимать ENTER).

Object filename[C:prog3.obj]:нажмите C: и ENTER, если имяобъектного файла то же.

Source listing [Nul.lst]:

введите C:prog3, (если имя файла тоже, указать C:), т.к. файл листингапрограммы будет нужен, иначе - ENTER.

Cross reference[Nul.lst]:

нажмитеENTER, т.к. файллистингаперекрестных ссылокненужен(онсоздается толькодля сложных программ), но если листинг нужен, указать C: и ENTER.

Если вы аккуратно выполнили предыдущие задания,то ассемблер завершит свою работу сообщением

Warningerrors0

Severerrors0

Это означает: предупреждений об ошибках и ошибокнет, возвратуправления MS DOS.Если ассемблер выдаст сообщение обошибках (для каждой ошибки указывается ее адрес-номер строки программы и характер ошибки), то исправьтеисходную программу и заново ее оттранслируйте.

3. Просмотр листинга программы.

Выведите файл листинга программы на дисплей:

C>copy С:prog3.lst, conилиtype С:prog3.lst

Перепишите листинг программы себе в отчет, расшифруйте его структуру и содержание сообщений листинга программы.

Если в листинге есть указания на обнаруженные впрограммеошибки, следует устранить их.

4. Создание исполняемой машинной .EXE программы.

Вызвать на исполнение программу-загрузчик LINK: С>link.

На экране появится полное название программы LINK, ее версия изапрос на получение информации о файлах, участвующих в создании исполняемого машинного файла и редактировании его связей:

Object moduls[.obj]:

введитеС:prog3, т.к. у нас есть одинобъектный модуль.

Run File [E:prog3.exe]:

нажмите ENTER или С:, если имя исполняемого файла то же.

List File [Nul.map]:

нажмите ENTER, т.к. листинг распределения памяти не нужен; если нужен - то С:

Libraries [lib]:

нажмите ENTER, т.к. дополнительные библиотечные файлы для редактирования связей не используются.

Если все указанные выше действия выполнены аккуратно, тобудет создана исполняемая машинная программа prog3.exe.

5. Выполнить программу prog3.exe.

Для запуска исполняемой .ЕХЕ программы достаточно просто набрать ее имя:С:\> C:\prog3и нажать клавишу ENTER.

Теперь следует выполнить в режиме трассировки все команды программы,записать информацию выводимую на экран дисплея, а после окончания работы программы записать полученные результаты. Показать результаты выполнения программы (на экране дисплея) преподавателю.

6. Скопировать программы prog3.asm и prog3.exe на гибкий диск.

7. Получить задание на следующую работу. Выключить ПК.

Содержание отчета

Отчет должен содержать:

· текст исходной ассемблерной программы prog3.asm с выделением основных ее структурных элементов, в том числе и необходимых дляформирования исполняемой .ЕХЕ программы;

· экран диалога и описание основных процедур, выполненных при ассемблировании программы (с указанием допущенных ошибок);

· трассировку7 – 10 команд программы в DEBUG и пояснениями выполняемых команд и их результатов;

· листинг программы с расшифровкой его структуры и сообщений вразделе листинга программы.


Наши рекомендации