Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 23:06

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: FFASM
СообщениеДобавлено: Чт окт 02, 2008 14:12 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
В ФАСМ встроил Форт: http://fpauk.narod.ru/ffasm.7z
Теперь с помощью Форта можно вмешиваться в работу ассемблера.
Т.о. неважно не только то, что на чем написано, но и что к чему добавлено.
При объединении форт-системы с другими средствами программирования они становятся
частью форт-системы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 02, 2008 15:06 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Я не понял как это все работает???
Код:
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.

_________________
Меня нет, не будет и не было.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FFASM
СообщениеДобавлено: Чт окт 02, 2008 15:26 
Mihail писал(а):
Т.о. неважно не только то, что на чем написано, но и что к чему добавлено.


Кудряво сказано :)


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 02, 2008 15:46 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
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 ,
можно средствами форта исследовать ассемблер.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 02, 2008 21:24 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
по любому достижение

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 03, 2008 07:39 
Может стоит информировать автора fasma и колибристроителей?

P.S. Какие дальнейшие задумки в этом направлении.?
Возможно ли будет смесь кода написанного на Фасм + SPF
сохранить в exe файл средствами Фасм?
От колибри Форт тоже, похоже, включен.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 03, 2008 09:29 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Гость писал(а):
Возможно ли будет смесь кода написанного на Фасм + SPF
сохранить в exe файл средствами Фасм?

Называется "макрос" и есть в оригинальном fasm.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 03, 2008 13:09 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Гость писал(а):
Возможно ли будет смесь кода написанного на Фасм + SPF
сохранить в exe файл средствами Фасм?


Для этого нужно глубже разобраться с Фасм. Это давольно трудно.
Думаю проще весь Фасм представить в виде мелких процедур, которые будут вызываться
из Форта. После этого разобраться будет гораздо проще.
Пока я думаю подавать загрузочный модуль с MAP-файлом сгенерированнае ФФАСМом
на вход SPF для доработки.

Гость писал(а):
От колибри Форт тоже, похоже, включен.


Я использовал в качестве прототипа Форт из http://fpauk.narod.ru/kbochs3.7z

Хищник писал(а):
Гость писал(а):
Возможно ли будет смесь кода написанного на Фасм + SPF
сохранить в exe файл средствами Фасм?

Называется "макрос" и есть в оригинальном fasm.


Зачем тогда SPF нужен?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 03, 2008 20:12 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Mihail писал(а):
Называется "макрос" и есть в оригинальном fasm.

Зачем тогда SPF нужен?

А он в процессе работы fasm и не нужен.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: FFASM
СообщениеДобавлено: Сб мар 19, 2016 05:26 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Пример компиляции 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 брать здесь


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB