Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: FFASM |
|
|
Пример компиляции Fasm программ в SPF4 Fasm in sp-forth on windowsКод: WINAPI: fasm_Assemble fasm.dll 2048 CONSTANT bufsize CREATE buf bufsize ALLOT REQUIRE STR@ ~ac/lib/str.f REQUIRE S>ZALLOC ~nn/lib/az.f
: s1 buf 4 + @ ; : s2 buf 8 + @ ; : .err ." error: " s1 . ." line: " s2 4 + @ . ; : asmerr? 0 <> ; : assemble >R 0 100 bufsize buf R> STR@ S>ZALLOC fasm_Assemble asmerr? IF .err ELSE s2 s1 THEN ; : fasm: CREATE ; : ;fasm assemble DUP HERE SWAP ALLOT SWAP CMOVE> DOES> EXECUTE ;
\ example mmx linear multiply range of vectors by one vector (4 doubles):
fasm: v* ( @first @last @vector -- ) " use32
movups xmm0, [eax] mov edx, [ebp] mov ebx, [ebp+4]
.nextQuad: movups xmm1, [ebx] pmulld xmm1, xmm0 movups [ebx], xmm1 lea ebx, [ebx+16] cmp ebx, edx jnge .nextQuad
lea ebp, [ebp+12] retn " ;fasm
\ Create an array of quads:
HERE DUP 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , HERE HERE 1 , 2 , 3 , 4 , \ Ok ( 5861216 5861248 5861248 ) v* 48 DUMP \ 596F60 01 00 00 00 04 00 00 00 09 00 00 00 10 00 00 00 ................ \ 596F70 05 00 00 00 0C 00 00 00 15 00 00 00 20 00 00 00 ............ ... \ 596F80 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 ................
\ I figured fasm.dll might be useful for people trying to get at important SIMD instructions.
P.S. FASM.DLL брать здесь
Пример компиляции Fasm программ в SPF4 [url=https://www.reddit.com/r/Forth/comments/3nga7n/fasm_in_spforth_on_windows/]Fasm in sp-forth on windows[/url] [code] WINAPI: fasm_Assemble fasm.dll 2048 CONSTANT bufsize CREATE buf bufsize ALLOT REQUIRE STR@ ~ac/lib/str.f REQUIRE S>ZALLOC ~nn/lib/az.f
: s1 buf 4 + @ ; : s2 buf 8 + @ ; : .err ." error: " s1 . ." line: " s2 4 + @ . ; : asmerr? 0 <> ; : assemble >R 0 100 bufsize buf R> STR@ S>ZALLOC fasm_Assemble asmerr? IF .err ELSE s2 s1 THEN ; : fasm: CREATE ; : ;fasm assemble DUP HERE SWAP ALLOT SWAP CMOVE> DOES> EXECUTE ;
\ example mmx linear multiply range of vectors by one vector (4 doubles):
fasm: v* ( @first @last @vector -- ) " use32
movups xmm0, [eax] mov edx, [ebp] mov ebx, [ebp+4]
.nextQuad: movups xmm1, [ebx] pmulld xmm1, xmm0 movups [ebx], xmm1 lea ebx, [ebx+16] cmp ebx, edx jnge .nextQuad
lea ebp, [ebp+12] retn " ;fasm
\ Create an array of quads:
HERE DUP 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , HERE HERE 1 , 2 , 3 , 4 , \ Ok ( 5861216 5861248 5861248 ) v* 48 DUMP \ 596F60 01 00 00 00 04 00 00 00 09 00 00 00 10 00 00 00 ................ \ 596F70 05 00 00 00 0C 00 00 00 15 00 00 00 20 00 00 00 ............ ... \ 596F80 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 ................
\ I figured fasm.dll might be useful for people trying to get at important SIMD instructions. [/code]
P.S. [url=http://board.flatassembler.net/topic.php?t=6239]FASM.DLL брать здесь[/url]
|
|
|
|
Добавлено: Сб мар 19, 2016 05:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Mihail писал(а): Называется "макрос" и есть в оригинальном fasm.
Зачем тогда SPF нужен?
А он в процессе работы fasm и не нужен.
[quote="Mihail"]Называется "макрос" и есть в оригинальном fasm.
Зачем тогда SPF нужен?[/quote]
А он в процессе работы fasm и не нужен.
|
|
|
|
Добавлено: Пт окт 03, 2008 20:12 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Гость писал(а): Возможно ли будет смесь кода написанного на Фасм + SPF сохранить в exe файл средствами Фасм? Для этого нужно глубже разобраться с Фасм. Это давольно трудно. Думаю проще весь Фасм представить в виде мелких процедур, которые будут вызываться из Форта. После этого разобраться будет гораздо проще. Пока я думаю подавать загрузочный модуль с MAP-файлом сгенерированнае ФФАСМом на вход SPF для доработки. Гость писал(а): От колибри Форт тоже, похоже, включен. Я использовал в качестве прототипа Форт из http://fpauk.narod.ru/kbochs3.7zХищник писал(а): Гость писал(а): Возможно ли будет смесь кода написанного на Фасм + SPF сохранить в exe файл средствами Фасм?
Называется "макрос" и есть в оригинальном fasm.
Зачем тогда SPF нужен?
[quote="Гость"]Возможно ли будет смесь кода написанного на Фасм + SPF сохранить в exe файл средствами Фасм?[/quote] Для этого нужно глубже разобраться с Фасм. Это давольно трудно. Думаю проще весь Фасм представить в виде мелких процедур, которые будут вызываться из Форта. После этого разобраться будет гораздо проще. Пока я думаю подавать загрузочный модуль с MAP-файлом сгенерированнае ФФАСМом на вход SPF для доработки.
[quote="Гость"]От колибри Форт тоже, похоже, включен.[/quote]
Я использовал в качестве прототипа Форт из http://fpauk.narod.ru/kbochs3.7z
[quote="Хищник"]Гость писал(а): Возможно ли будет смесь кода написанного на Фасм + SPF сохранить в exe файл средствами Фасм?
Называется "макрос" и есть в оригинальном fasm.[/quote]
Зачем тогда SPF нужен?
|
|
|
|
Добавлено: Пт окт 03, 2008 13:09 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Гость писал(а): Возможно ли будет смесь кода написанного на Фасм + SPF сохранить в exe файл средствами Фасм?
Называется "макрос" и есть в оригинальном fasm.
[quote="Гость"]Возможно ли будет смесь кода написанного на Фасм + SPF сохранить в exe файл средствами Фасм? [/quote]
Называется "макрос" и есть в оригинальном fasm.
|
|
|
|
Добавлено: Пт окт 03, 2008 09:29 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Может стоит информировать автора fasma и колибристроителей?
P.S. Какие дальнейшие задумки в этом направлении.?
Возможно ли будет смесь кода написанного на Фасм + SPF
сохранить в exe файл средствами Фасм?
От колибри Форт тоже, похоже, включен.
Может стоит информировать автора fasma и колибристроителей?
P.S. Какие дальнейшие задумки в этом направлении.?
Возможно ли будет смесь кода написанного на Фасм + SPF
сохранить в exe файл средствами Фасм?
От колибри Форт тоже, похоже, включен.
|
|
|
|
Добавлено: Пт окт 03, 2008 07:39 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
по любому достижение
по любому достижение
|
|
|
|
Добавлено: Чт окт 02, 2008 21:24 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Pretorian писал(а): Я не понял как это все работает???
Под "FSCRIPT.F подается" я имел в виду "подается автоматически".
В командной строке FFASM.EXE подаются те-же параметры, что и в FASM.EXE
Транслятор ассемблера работает как и работал. Форт вызывается в SOURCE\FWIN32\ffasm.asm
командой call FORTH_ENTRY . В Форте запускается INIT из SOURCE\FWIN32\forth\src\spf_init.f
Командой AUTOEXEC запускает на исполнение файл FSCRIPT.F .
В TST.BAT ffasm.asm собирает сам себя. Если при этом в конец FSCRIPT.F вставить ABORT ,
можно средствами форта исследовать ассемблер.
[quote="Pretorian"]Я не понял как это все работает???[/quote]
Под "FSCRIPT.F подается" я имел в виду "подается автоматически".
В командной строке FFASM.EXE подаются те-же параметры, что и в FASM.EXE
Транслятор ассемблера работает как и работал. Форт вызывается в SOURCE\FWIN32\ffasm.asm
командой call FORTH_ENTRY . В Форте запускается INIT из SOURCE\FWIN32\forth\src\spf_init.f
Командой AUTOEXEC запускает на исполнение файл FSCRIPT.F .
В TST.BAT ffasm.asm собирает сам себя. Если при этом в конец FSCRIPT.F вставить ABORT ,
можно средствами форта исследовать ассемблер.
|
|
|
|
Добавлено: Чт окт 02, 2008 15:46 |
|
|
|
|
|
Заголовок сообщения: |
Re: FFASM |
|
|
Mihail писал(а): Т.о. неважно не только то, что на чем написано, но и что к чему добавлено.
Кудряво сказано
[quote="Mihail"] Т.о. неважно не только то, что на чем написано, но и что к чему добавлено. [/quote]
Кудряво сказано :)
|
|
|
|
Добавлено: Чт окт 02, 2008 15:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Я не понял как это все работает???
Код: D:\...й стол\ffasm\FFASM\SOURCE\FWIN32>ffasm.exe FSCRIPT.F flat assembler version 1.67.27 (971450 kilobytes memory) FSCRIPT.F [19]: BEGIN DUP memory_end @ 0x20 - U<= \ KEY [CHAR] Q <> AND error: extra characters on line.
Я не понял как это все работает???
[code] D:\...й стол\ffasm\FFASM\SOURCE\FWIN32>ffasm.exe FSCRIPT.F flat assembler version 1.67.27 (971450 kilobytes memory) FSCRIPT.F [19]: BEGIN DUP memory_end @ 0x20 - U<= \ KEY [CHAR] Q <> AND error: extra characters on line. [/code]
|
|
|
|
Добавлено: Чт окт 02, 2008 15:06 |
|
|
|
|
|
Заголовок сообщения: |
FFASM |
|
|
В ФАСМ встроил Форт: http://fpauk.narod.ru/ffasm.7z
Теперь с помощью Форта можно вмешиваться в работу ассемблера.
Т.о. неважно не только то, что на чем написано, но и что к чему добавлено.
При объединении форт-системы с другими средствами программирования они становятся
частью форт-системы.
В ФАСМ встроил Форт: http://fpauk.narod.ru/ffasm.7z
Теперь с помощью Форта можно вмешиваться в работу ассемблера.
Т.о. неважно не только то, что на чем написано, но и что к чему добавлено.
При объединении форт-системы с другими средствами программирования они становятся
частью форт-системы.
|
|
|
|
Добавлено: Чт окт 02, 2008 14:12 |
|
|
|
|