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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 104 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт сен 16, 2008 20:07 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
chess писал(а):
При внимательном просмотре ошибок в комментариях еще больше.
Правильно тут будет так:
Код:
CODE RP+@ ( offs -- x )
\ взять число со смещением offs байт от вершины стека возвратов (0 RP+@ == RP@)
     8B C, 44 C, 04 C, 04 C, \ MOV EAX, 4 [ESP][EAX]
     RET
END-CODE
     
CODE RP+ ( offs -- addr )
\ взять адрес со смещением offs байт от вершины стека возвратов
     8D C, 44 C, 04 C, 04 C, \  LEA EAX, 4 [ESP][EAX]
     RET
END-CODE


0 RP+@ ни как не могут быть равны RP@, потому что первое это данные с адреса стека, а второе адрес стека (возвратов).

P.S. В какое место непонятный асм приткнуть (если сам запутался)?

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Pretorian писал(а):
0 RP+@ ни как не могут быть равны RP@, потому что первое это данные с адреса стека, а второе адрес стека (возвратов).

P.S. В какое место непонятный асм приткнуть (если сам запутался)?

Нет не запутался - а тоже устал. :(
Исправлял другие строки(смотри внимательно), вот эти:
Код:
8B C, 44 C, 04 C, 04 C, \ MOV EAX, 4 [EAX] [ESP]
8D C, 44 C, 04 C, 04 C, \ LEA EAX, 4 [EAX] [ESP]

на эти:
Код:
8B C, 44 C, 04 C, 04 C, \ MOV EAX, 4 [ESP][EAX]
8D C, 44 C, 04 C, 04 C, \ LEA EAX, 4 [ESP][EAX]

а про то, что уже проехали и забыл.
Ну и окончательно все должно быть так:
Код:
CODE RP+@ ( offs -- x )
\ взять число со смещением offs байт от вершины стека возвратов
     8B C, 44 C, 04 C, 04 C, \ MOV EAX, 4 [ESP][EAX]
     RET
END-CODE
     
CODE RP+ ( offs -- addr )
\ взять адрес со смещением offs байт от вершины стека возвратов(0 RP+ == RP@)
     8D C, 44 C, 04 C, 04 C, \  LEA EAX, 4 [ESP][EAX]
     RET
END-CODE

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


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

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Код:
CODE RP+@ ( offs -- x )
\ взять число со смещением offs байт от вершины стека возвратов (0 RP+ == RP@)

Так комент (0 RP+ == RP@) теперь правилен, но не в том слове :))))) его надо к
Код:
CODE RP+ ( offs -- addr )

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


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

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
Pretorian писал(а):
его надо к

так он там и стоит. :))

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


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

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Нечестно, переправил задним временем :))

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


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

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

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


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

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Главное к Пушкину не посылайте, иногда действительно проще спросить, чем успеть разобраться (у меня другой язык по работе, времени не хватает).

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Вся память.
СообщениеДобавлено: Ср фев 02, 2022 22:00 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Как отобрать у винды максимально оперативной памяти?
Необходим сегмент(ы) под адресацию в Win10x64.
Как это вообще выглядит?

Это прочитал. viewtopic.php?p=199#p199
Кое что прояснилось со структурой кишек винды: viewtopic.php?p=5754#p5754

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Общие вопросы по SP-Forth и др. общие вопросы
СообщениеДобавлено: Чт фев 03, 2022 01:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Sotnik писал(а):
Как отобрать у винды максимально оперативной памяти?
Необходим сегмент(ы) под адресацию в Win10x64.
Как это вообще выглядит?

Да никак особо, она не отбирается насовсем, а резервируется. Приложение думает, что у него все есть, ОС отдает реальные страницы по мере доступа к ним. Это на уровне rb rd (reserve bytes, reserve dwords).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Общие вопросы по SP-Forth и др. общие вопросы
СообщениеДобавлено: Чт фев 03, 2022 02:26 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Hishnik писал(а):
Sotnik писал(а):
Как отобрать у винды максимально оперативной памяти?
Необходим сегмент(ы) под адресацию в Win10x64.
Как это вообще выглядит?
Да никак особо, она не отбирается насовсем, а резервируется. Приложение думает, что у него все есть, ОС отдает реальные страницы по мере доступа к ним. Это на уровне rb rd (reserve bytes, reserve dwords).
Мне нужно для работы два массива по 4 гега. (или один на 8, но это под 64 бита)
Есть два индекса, и гонять надо по массивам по кругу.
Можно пример рабочий, может это тут уже сто раз было, но я уже заколупываюсь перерывать все темы - инфы много.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Общие вопросы по SP-Forth и др. общие вопросы
СообщениеДобавлено: Чт фев 03, 2022 02:28 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Боюсь, в "распространенных" фортах этого никак не будет. Это malloc сделать руками и работать с полученным указателем.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Общие вопросы по SP-Forth и др. общие вопросы
СообщениеДобавлено: Чт фев 03, 2022 17:32 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Hishnik писал(а):
Боюсь, в "распространенных" фортах этого никак не будет. Это malloc сделать руками и работать с полученным указателем.
Главное мне понимать как это выглядит в работе.
Код:
\ Глобальная память, разделяемая между потоками      d:\spf4-20\devel\~yz\lib\gmem.f 
\ Идея реализации - А. Черезов 
\ Ю. Жиловец, 17.12.2002     

REQUIRE CZMOVE ~yz/lib/common.f
MODULE: GMEM
EXPORT
: MALLOCATE   ( u -- u-addr/0)  8 ( HEAP_ZERO_MEMORY) GetProcessHeap HeapAlloc ;
: MFREE         ( a-addr -- ?)     0 GetProcessHeap   HeapFree ;
: MGETMEM     ( u -- a-addr )    MALLOCATE   DUP IF 0 ELSE -300 THEN THROW ;
: MFREEMEM    ( a-addr -- )       MFREE ERR THROW ;
: CMGETMEM   ( a n -- a2)         DUP 1+ MGETMEM   2DUP C! DUP >R 1+ SWAP CMOVE R> ;
: CZMGETMEM ( a n -- a)           DUP 1+ MGETMEM     DUP >R CZMOVE R> ;
: ZMGETMEM     ( z -- a)          ASCIIZ> CZMGETMEM ;
;MODULE
Как работают эти слова? Комментов, как всегда, нет... :(
Мне нужно для работы два массива по 4 гега. (или один на 8, но это под 64 бита)
Есть два индекса, и гонять надо по массивам по кругу.

Скомпилилось нормально.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Общие вопросы по SP-Forth и др. общие вопросы
СообщениеДобавлено: Чт фев 03, 2022 21:40 
Не в сети
Administrator
Administrator
Аватара пользователя

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

https://docs.microsoft.com/en-us/window ... lobalalloc
Это в kernel32.dll, то есть можно просто руками, помимо Форта.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Общие вопросы по SP-Forth и др. общие вопросы
СообщениеДобавлено: Пт фев 04, 2022 01:00 
Не в сети

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 405
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 48 раз.
Поблагодарили: 3 раз.
Hishnik писал(а):
Sotnik писал(а):
Как работают эти слова? Комментов, как всегда, нет...
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc
Это в kernel32.dll, то есть можно просто руками, помимо Форта.
Прочитал, понятно что можно получить.
Буду потиху копать.
Но без примера трудно будет.

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


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

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


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

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


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

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