FreeBasic
Главная
Вход
Регистрация
Суббота, 23.09.2017, 10:21Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Freebasic » Вопросы по языку FreeBasic » Компилирование в ASM , а потом в EXE (Возможность оптимизации)
Компилирование в ASM , а потом в EXE
haavДата: Понедельник, 17.09.2012, 09:28 | Сообщение # 1
Генерал-лейтенант
Группа: Администраторы
Сообщений: 768
Репутация: 33
Статус: Offline
Для тех кто неплохо знает ассемблер, есть возможность скомпилировать исходный код FreeBasic в ASM исходник и подправить по своему усмотрению, а впоследствии его скомпилировать в приложение. С данным вопросом помог electrik. Обсуждалась данная тема ЗДЕСЬ, но я решил создать отдельную тему, дабы при случае можно было легко найти.

И так для того чтобы создать ASM листинг из файла BAS , нужно компилятору передать параметры:

Код
fbc -R test.bas -v


Где ключ -R как раз нужен для того , чтобы сохранить ASM файл , а ключ -V для того чтобы подсмотреть все параметры компиляции для будующего создания приложения.

В окне консоли выводится примерно следующее:

Код
D:\Freebasic\fbedit\Projects\MyProject\Классные примеры на FreeBasic\Другие поле
зности\Создание ASM а потом в EXE>fbc -R test.bas -v
FreeBASIC Compiler - Version 0.24.0 (08-19-2012) for win32
Copyright (C) 2004-2012 The FreeBASIC development team.
standalone, objinfo (libbfd 217)
compiling:    test.bas -o test.asm (main module)
assembling:   D:\Freebasic\fbedit\Compilier\bin\win32\as.exe --32 --strip-local-
absolute "test.asm" -o "test.o"
linking:      D:\Freebasic\fbedit\Compilier\bin\win32\ld.exe -o "test.exe" -subs
ystem console "D:\Freebasic\fbedit\Compilier\lib\win32\fbextra.x" --stack 104857
6,1048576 -s -L "D:\Freebasic\fbedit\Compilier\lib\win32" -L "." "D:\Freebasic\f
bedit\Compilier\lib\win32\crt2.o" "D:\Freebasic\fbedit\Compilier\lib\win32\crtbe
gin.o" "D:\Freebasic\fbedit\Compilier\lib\win32\fbrt0.o" "test.o" "-(" -luser32
-lfb -lgcc -lmsvcrt -lkernel32 -lmingw32 -lmingwex -lmoldname -lsupc++ "-)" "D:\
Freebasic\fbedit\Compilier\lib\win32\crtend.o"

D:\Freebasic\fbedit\Projects\MyProject\Классные примеры на FreeBasic\Другие поле
зности\Создание ASM а потом в EXE>pause
Для продолжения нажмите любую клавишу . . .


Далее ASM файл редактируется по своему усмотрению и наконец сама компиляция в EXE:

Создаем CMD файл с содержанием, которое мы увидели при создании ASM листинга:

Код
D:\Freebasic\fbedit\Compilier\bin\win32\as.exe --32 --strip-local-absolute "test.asm" -o "test.o"
ld.exe -o "test.exe" -subsystem console "D:\Freebasic\fbedit\Compilier\lib\win32\fbextra.x" --stack 1048576,1048576 -s -L "D:\Freebasic\fbedit\Compilier\lib\win32" -L "." "D:\Freebasic\fbedit\Compilier\lib\win32\crt2.o" "D:\Freebasic\fbedit\Compilier\lib\win32\crtbegin.o" "D:\Freebasic\fbedit\Compilier\lib\win32\fbrt0.o" "test.o" "-(" -luser32 -lfb -lgcc -lmsvcrt -lkernel32 -lmingw32 -lmingwex -lmoldname -lsupc++ "-)" "D:\Freebasic\fbedit\Compilier\lib\win32\crtend.o"
pause


Все в нашем каталоге должны быть три файла с разным расширением:

.o - объектный файл
.asm - ASM листинг
.exe - приложение

Всего доброго!


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Форум » Freebasic » Вопросы по языку FreeBasic » Компилирование в ASM , а потом в EXE (Возможность оптимизации)
Страница 1 из 11
Поиск: