Часть 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 и пояснениями выполняемых команд и их результатов;
· листинг программы с расшифровкой его структуры и сообщений вразделе листинга программы.