|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Создание EXE как это делают компиляторы
Предлагаю вашему вниманию моё новое творение - ассемблер на Delphi. В отличие от многих примеров, которые только генерируют ASM файлы для последующей компиляции в TASM, MASM32, FASM и т.п. данная программа сама создаёт EXE файлы.
На данный момент программа создаёт EXE файлы объёмом от 1кб, поддерживает типы данных (byte,dword,string), записи (record) и немного других приятных функций. Программы выглядят примерно таким образом: Код:
.import import Kernel32.dll WriteFile import Kernel32.dll GetStdHandle import Kernel32.dll ExitProcess .var record two_strings string s1 "This string have three parts:" string s2 "s1, s2" string somename "and s3." end byte STD_INPUT_HANDLE 0xf5 dword count 0x00000000 .code push ^STD_INPUT_HANDLE call getstdhandle push 0x00 // lpOverlapped push @count // lpNumberOfBytesWritten push ^length(two_strings) // nNumberOfBytesToWrite push @two_strings // lpBuffer push eax // hFile call writefile push 0x00 call ExitProcess Скачать компилятор, исходники компилятора и примеры (30кб): http://www.igrodel.ru/tdg3d/peasm-0.3beta.zip Компиляция - из коммандной строки (в архиве есть нужные BAT файлы для компиляции примеров). |
#2
|
|||
|
|||
Круто, а 64 битный код сможет делать когда-нибудь?
Делаем'c разные игры. Искать на glscene.ru |