Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Информационный Канал Subscribe.Ru


Ассемблер под Windows №2

Компиляция программы в среде Windows


Доброго время суток, уважаемые подписщики. В связи с тем, что я получил достаточно много писем с вопросами о компиляции программы под Windows, я решил подробно описать этот процесс! Ещё хочу попросить прощения за имеющию место медлительность рассылки связонную с моим свободным временем, а точнее его отсутствием.


Итак, компиляция приложения Windows производится в досе, причём темже ассемблером, просто потом подругому соединяются отдельные её части. Именно в связи с этим нам и понадобится link32.exe, тоесть файлы с машинным ком будут объеденены при помощи этой программы. В связи с тем, что машинный код неизменяем в зависимости от окружения (ОС, менеджер), так как процессор всегда говорит на одном и том же языке, то ассемблер ml.exe, который Вы использовали под дос, вполне подойдёт нам и сейчас! Также нам нужны ссылки на процедуры Windows, тоесть файлы .lib!
Вот, ещё раз, список всех компонентов, которые нам понадобятся:

- Mspdb50.dll = нужно чтоб работал ассемблер ml.exe
- Ml.exe = сам ассемблер
- link32.exe
- kernel32.lib
- User32.lib

Чтобы было легче понять зачем нам нужно столько файлов, кратко объясню как происходит компиляция! В начале у нас есть файл с кодом языка ассемблер, в котором есть некие процедуры. Файлы добавления, расширения .inc, ассемблируются как кусок кода, они нужны только нам, чтоб легче находить нужную часть кода. Ассемблер (от англ. Assembly - собирать) преобразавывает код ассемблера в язык, понятный процессору, машинный код! Машинный код для всех операционных систем одинаков. А потом программа соединитель, в случае доса link16.exe, в Windows link32.exe, создаёт файл опредилённого расширения и дополнительных данных для ОС. А в конце мы получаем файл, который, на основе дополнительной информации, будет запускаться только в определённой ОС.

Сам процесс!Итак, чтобы прокомпилировать программу, нам понадобятся все файлы, которые надо было создать в первом уроке, тоесть window.asm, kernel32.inc, user32.inc, def32.inc. Их и всё файлы компилятора можно скачать с http://dl-home.narod.ru/WinASM.rar. Также понадобиться создать файл doit.bat, следующего содержания:

ml /c /coff window.asm
link window.obj /subsystem:windows

где window имя файла с кодом!

Ещё я прошу прощения, но я не дописал в рассылке файлы дополнения, вот что надо в них дописать:
в файл kernel32.inc:
includelib kernel32.lib
и в user32.inc:
includelib user32.lib

После этого нужно зайти в оболочку дос, такую как нортон командер, и запустить файл doit.bat, предварительно поместив все файлы в эту директорию! После окончания программы, можно нажав Ctrl-O, посмотреть, что он выдал! Если написанно error(ошибка), ряд и в чём ошибка, то стоит поискать там ошибку! Если ошибки не возникло, то должен появиться файл window.exe, который можно запустить из Windows! Это и есть наша программа. Удачи!

Я постараюсь отвечать на все письма, однако не могу обещать срочного ответа! Если я не отвечаю в течении недели, пошлите мне письмо ещё раз, скорее всего первое затерялось!

Опять таки к сожалению, не знаю когда выдет наконец подробное описание кода программы, но обещаю сделать его в течении недели. Если что пишите, Dark_Lord@land.ru, сюда, если первре мыло перегружено!


be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное