Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 09:52

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вт апр 26, 2022 11:06 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1285
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Вопрос по вызову функций на 64-битах в винде.

Объясните мне как правильно вызывать функцию, если в ней более 4 параметров

Начало-то понятно:

MOV RCX, P1
MOV RDX, P2
MOV R8, P3
MOV R9, P4

А дальше?

PUSH P5
PUSH P6
SUB RSP, 32

Или

SUB RSP, 32
PUSH P5
PUSH P6

???

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вт апр 26, 2022 17:20 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Victor__v писал(а):
Вопрос по вызову функций на 64-битах в винде.

Посмотрите как это сделано в Win64FasmForth Максимова Михаила.
Вот для 5 параметров.
Код:
SEE XAPI_5:

CODE XAPI_5:
41627A   E8 13 FE FF FF                                     call        $416092  ( DLL_CREATE )
41627F   E8 FC 22 FF FF                                     call        $408580  ( (DOES1) )
416284   E8 7A 45 FF FF                                     call        $40A803  ( R> )
416289   E8 EC 38 FF FF                                     call        $409B7A  ( @ )
41628E   E8 E4 5C FF FF                                     call        $40BF77  ( XAPI_5 )
416293   E8 64 36 FF FF                                     call        $4098FC  ( NIP )
416298   E8 5F 36 FF FF                                     call        $4098FC  ( NIP )
41629D   E8 5A 36 FF FF                                     call        $4098FC  ( NIP )
4162A2   E8 55 36 FF FF                                     call        $4098FC  ( NIP )
4162A7   E8 50 36 FF FF                                     call        $4098FC  ( NIP )
4162AC   C3                                                 ret
END-CODE
( 51 bytes, 11 instructions )

Ok
SEE XAPI_5

CODE XAPI_5
40BF77   48 8D 1D 05 00 00 00                               lea rbx,[$40BF7F ]
40BF7E   E9 23 FF FF FF                                     jmp $40BEA6  ( LOCALS_EXIT+1A  )
40BF83   FF D0                                              call        eax
40BF85   48 83 C4 28                                        add rsp,$28
40BF89   C3                                                 ret
END-CODE
( 19 bytes, 5 instructions )

Ok
$40BEA6 see

CODE call 40BEA6
40BEA6   FF 75 20                                           push        dword PTR $20[ebp]
40BEA9   4C 8B 4D 18                                        mov r9,$18[rbp]
40BEAD   4C 8B 45 10                                        mov r8,$10[rbp]
40BEB1   48 8B 55 08                                        mov rdx,$08[rbp]
40BEB5   48 8B 4D 00                                        mov rcx,$00[rbp]
40BEB9   48 83 EC 20                                        sub rsp,$20
40BEBD   FF E3                                              jmp ebx
END-CODE
( 25 bytes, 7 instructions )

Ok

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вт июл 26, 2022 16:44 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Фортов много не бывает. :)
Ещё один проект Forth64 для Windows на Fasm https://github.com/hughes-adrian/forth


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вт июл 26, 2022 21:50 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
KPG писал(а):
Фортов много не бывает. :)
Ещё один проект Forth64 для Windows на Fasm https://github.com/hughes-adrian/forth
LICENCE - самый подробный файл из документации! :)

_________________
Сотник. SotnikSTO@mail.ru


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Пт июл 29, 2022 12:40 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Кстати, задался тут вопросом...

Заметил, что если скомпилировать один и тот же код под 32 и 64 бита, то 32-битный вариант компактнее (тут как раз все понятно), так еще и заметно быстрее на 64-битной машине (win10, core i3-1005G1), чем 64-битный код. По традиции проверял на бродилке. Хотелось бы понять, это только у меня так или это так и должно быть? Да, не исключаю, что только у меня, т.к. мой 64-битный транслятор пока в зачаточном состоянии, но все-таки...

Например, http://totalvacuum.ru/32vs64.zip
Здесь по 2 варианта под каждую из разрядностей 32/64.

512x384\inline - заинлайнено абсолютно всё
512x384\compact - заинлайнены только короткие примитивы и редко используемые слова:
Код:
\ 32 \                           \ 64 \
: swap `xchg eax,[ebx]` ;        : swap `xchg rax,[rbx]` ;
: @ `xchg esi,eax` `lodsd` ;     : @ `xchg rsi,rax` `lodsq` ;
: init ... ;                     : init ... ;
и т.д.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вт авг 02, 2022 09:44 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
e4
Цитата:
e4 is a standards-compliant embeddable Forth 2012 system. For more information, see the system label (doc/rst/core/stddoc/system-label.rst). For example usage, see the repl and examples directories.


Собрался под Linux 64 (в зависимостях библиотека libffi и libedit + скрипт на руби)
В примере эмулятор Chip8 (с подключением и вызовом функций из SDL)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вс окт 09, 2022 18:40 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
del - Было уже.

P.S. Интересно, а какой из 64-е бит Форт у кого прижился и под какой ОС?
(вероятно свой какой то вариант Форт? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Пн окт 10, 2022 00:07 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
(вероятно свой какой то вариант Форт?

"Вероятно"? :))


Вложения:
irbis_64bit_small.png
irbis_64bit_small.png [ 124 Кб | Просмотров: 7487 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Пн окт 10, 2022 11:11 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
KPG писал(а):
у кого прижился?

Конкретно в моем случае есть 2 веских причины не писать под 64-бита:
- имеется несколько компьютеров/ноутбуков, но 64-битная ОС win10 стоит лишь на одном, а на остальных win7-32 и даже winxp имеется. После компиляции 32-битные программы будут работать на всех моих компьютерах, а 64-битные - исключительно на том, где win10;
- 32-битный код в сравнении с 64-битным не только компактнее (ожидаемо), но и быстрее (тут пока теряюсь в догадках) при запуске и того и другого в win10;
Так что пока, увы, 64-битное не приживается. Оно как бы сделано для галочки, но острой необходимости в нем пока не наблюдается... :)

Даже если понадобится работать с жирными числами, то, вероятнее всего, просто добавлю в 32-битное ядро арифметику для работы с числами двойной длины...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Пн окт 10, 2022 15:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7958
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В ПЛИС аккумулятор в DSP 48 бит, а в новых Versal - 58. Удобно их моделировать без лишних раздумий, сколько там получается и влезет ли в 32 бита. Опять же, бывают большие наборы данных и много памяти, например, 16 или 32 Гбайт - такое в 32-разрядной системе уже не получится адресовать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Пн окт 10, 2022 16:27 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
:) Ну я как бы не спорю, что в природе есть масса ситуаций, где 64 бита жизненной необходимы. Но сам пока в такую ситуацию не попадал, так что мой личный квантовый скачок с 32 на 64 бита если и состоится, то не очень скоро. Не дорос еще до 64 бит. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Вт окт 11, 2022 11:09 
Не в сети

Зарегистрирован: Вс авг 21, 2022 14:56
Сообщения: 33
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Total Vacuum писал(а):
32-битный код в сравнении с 64-битным не только компактнее (ожидаемо), но и быстрее (тут пока теряюсь в догадках)

32-битный код видимо быстрее, потому что компактнее. Обмен между процессором и памятью всё-же не мгновенный, даже если это кэш.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Ср окт 12, 2022 12:26 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Total Vacuum писал(а):
KPG писал(а):
у кого прижился?

Конкретно в моем случае есть 2 веских причины не писать под 64-бита:
- имеется несколько компьютеров/ноутбуков, но 64-битная ОС win10 стоит лишь на одном...

Эх! А линух всё до наоборот. Ещё надо поискать оставшиеся дистрибутивы, которые оставили поддержку 32b версий + многие хорошие/нужные софтины давно уже 64b. :(


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Ср окт 12, 2022 13:53 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 460
Откуда: Москва
Благодарил (а): 57 раз.
Поблагодарили: 22 раз.
Ilya писал(а):
Ещё надо поискать оставшиеся дистрибутивы, которые оставили поддержку 32b версий

Специально не искал, но, например, мой 32-битный esoteric forth запускается на 64-битных ubuntu studio и puppy linux (fossa). А какой 64-битный дистрибутив Линукса не желает запускать 32-битный код? Просто я с разными Линуксами знаком лишь поверхностно, да и то скорее как пользователь, а не как программист...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: 64-битные форт-системы для ix86 платформы
СообщениеДобавлено: Ср окт 12, 2022 17:52 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Total Vacuum писал(а):
А какой 64-битный дистрибутив Линукса не желает запускать 32-битный код? Просто я с разными Линуксами знаком лишь поверхностно, да и то скорее как пользователь, а не как программист...

Я, может не совсем верно выразился! Вроде 32b приложения ещё нормально работают на 64b системах, да вот только некоторые "производители" интересного софта прекратили выпуск версий под 32b!
Простой пример: у меня есть самопальная софтина и том числе она запрашивает данные из БД. Я много лет использовал SQLite, MySql, но например на запрос "суточной статистики" преходилось ждать ответа до 40 сек! И тут я "случайно" узнал про более-другие БД и сейчас у меня на получение аналогичных уходит <120 ms!!! Почувствуй разницу!
Да, вот только эта БД ClickHouse уже давно не развивается на 32b! Пришлось срочно апгредить "серверное" железо, но результат того стоит!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

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


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

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


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

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