Forth http://www.fforum.winglion.ru/ |
|
Дополнения, изменения, ошибки. http://www.fforum.winglion.ru/viewtopic.php?f=25&t=1511 |
Страница 1 из 4 |
Автор: | Pretorian [ Пт сен 19, 2008 09:17 ] |
Заголовок сообщения: | Дополнения, изменения, ошибки. |
Первая строка имя слова, вторая что имеется в виду, третья комент по исправлению. PERFORM Выполнить слово, адрес xt которого хранится в ячейке памяти addr. xt пропустил _CREATE-CODE Получить со стека возвратов адрес. добавить коммент _CONSTANT-CODE Получить со стека возвратов адрес, а из него значение. добавить коммент _VECT-CODE Перейти на адрес указанный в полученном адресе со стека возвратов. добавить коммент _TOVALUE-CODE ( n --> ) или ( addr --> ) короткий комент неправилен, кстати, а что там со смещением -9 пишется? Хочется комментарий придумать. TlsIndex! Установить указатель локального пула потока. Изменить коммент TlsIndex@ Получить указатель локального пула потока. добавить коммент _USER-VALUE-CODE ( --> addr ) короткий комент неправилен _TOUSER-VALUE-CODE ( --> addr ) короткий комент неправилен OVER Положить копию a на вершину стека. Изменить коммент: там x1 за место a |
Автор: | Pretorian [ Пн сен 22, 2008 07:41 ] |
Заголовок сообщения: | |
Может слово R+ сделать лучше unfeasible? В исполнении где оно может пригодится то? WITHIN Вернуть флаг "истина" если число n находится в диапазоне чисел между low&high или равно low. Концовочку про low надо добавить. RSHIFT ( u # --> u>># ) сдвинуть число u на # бит вправо исправить комент и краткий комент на противоположный |
Автор: | mOleg [ Пн сен 22, 2008 17:28 ] |
Заголовок сообщения: | |
Pretorian писал(а): RSHIFT
( u # --> u>># ) сдвинуть число u на # бит вправо исправить комент и краткий комент на противоположный этот момент не понял, поясни пожалуйста! Да, за помощь спасибо. У тебя сейчас какая сборка? |
Автор: | mOleg [ Пн сен 22, 2008 17:49 ] |
Заголовок сообщения: | |
Pretorian писал(а): _CREATE-CODE
Получить со стека возвратов адрес. добавить коммент _CONSTANT-CODE Получить со стека возвратов адрес, а из него значение. добавить коммент _VECT-CODE Перейти на адрес указанный в полученном адресе со стека возвратов. добавить коммент _TOVALUE-CODE ( n --> ) или ( addr --> ) короткий комент неправилен, кстати, а что там со смещением -9 пишется? Хочется комментарий придумать. Вобщем верно, но от этих слов в будущем хочется отказаться, поэтому опускал коменты. -9 это по сути хак, по такому смещению хранится значение VALUE переменой. |
Автор: | Pretorian [ Вт сен 23, 2008 05:44 ] |
Заголовок сообщения: | |
mOleg писал(а): Pretorian писал(а): RSHIFT ( u # --> u>># ) сдвинуть число u на # бит вправо исправить комент и краткий комент на противоположный этот момент не понял, поясни пожалуйста! Да, за помощь спасибо. У тебя сейчас какая сборка? У тебя в RSHIFT комент от LSHIFT. Сборка 893. Мне кажется что лучше поменять комент у U>D, у тебя (расширить число до двойной точности нулем), предлагаю (Преобразовать беззнаковое число u в двойное число d.). Код: \ заменить значение по указанному адресу на new - старое вернуть √
CODE ACHANGE ( new addr --> old ) dpop temp MOV addr , tos MOV tos , [addr] MOV [addr] , temp exit END-CODE ALIAS ACHANGE CHANGE ( new addr --> old ) \ √ Может ARHANGE это заменить адрес по адресу, а CHANGE заменить значение по адресу? Если да то изменить коменты. |
Автор: | mOleg [ Вт сен 23, 2008 20:19 ] |
Заголовок сообщения: | |
Pretorian писал(а): У тебя в RSHIFT комент от LSHIFT. поправил. Pretorian писал(а): Мне кажется что лучше поменять комент у U>D, у тебя (расширить число до двойной точности нулем), предлагаю (Преобразовать беззнаковое число u в двойное число d.). согласен, поправил. Pretorian писал(а): Может ARHANGE это заменить адрес по адресу, а CHANGE заменить значение по адресу? Если да то изменить коменты.
вобщем ты прав. Просто тут я хотел на двух стульях усидеть. В реальности надо вводить два слова: CHANGE и ACHANGE = одно для работы с адресами, а другое для работы с данными. Сейчас поправлю. |
Автор: | Pretorian [ Ср окт 01, 2008 12:22 ] |
Заголовок сообщения: | |
Кстати очень спорный вопрос нахождения FILL в исходниках string.f. Вроде тут работа с памятью, а не строками. А чего это слово так изменило название в форке? Код: CODE 0! ( addr --> ) MOV DWORD [EAX], # 0 MOV EAX, [EBP] LEA EBP, 4 [EBP] RET END-CODE CODE UnlockMutex ( addr --> ) XOR temp , temp XCHG [tos] , temp dpop tos exit END-CODE А тут будет возвращатся TRUE или инвентированное число, где гарантия что FALSE(0)? Код: \ обменять содержимое ячейки по адресу addr на -1, если извлеченное \ значение = 0 вернуть флаг TRUE иначе FALSE CODE ?LockMutex ( addr --> flag ) MOV addr , tos MOV tos , # -1 XCHG [addr] , tos NOT tos exit END-CODE Тут же по правилам ( addr u --> # ), вот только неудобно как то по стандарту, помоему удобнее ( addr u --> asc # ). Это так, просто размышление. Код: VECT ACCEPT ( ?? )
Может убрать из комментов слово "хендл" и заменить более понятным "дескриптор"? |
Автор: | mOleg [ Пт окт 03, 2008 17:31 ] |
Заголовок сообщения: | |
Pretorian писал(а): Кстати очень спорный вопрос нахождения FILL в исходниках string.f. Вроде тут работа с памятью, а не строками. А чего это слово так изменило название в форке? Код: CODE 0! ( addr --> ) MOV DWORD [EAX], # 0 MOV EAX, [EBP] LEA EBP, 4 [EBP] RET END-CODE CODE UnlockMutex ( addr --> ) XOR temp , temp XCHG [tos] , temp dpop tos exit END-CODE не не не. Это совсем другое. Тут именно объект синхронизации используется - это не 0! Pretorian писал(а): Тут же по правилам ( addr u --> # ), вот только неудобно как то по стандарту, помоему удобнее ( addr u --> asc # ). Это так, просто размышление. еще раз, это совсем другое. Посмотри, как реализовано слово (EXC-DUMP) - будет понятнее. Pretorian писал(а): Код:
VECT ACCEPT ( ?? ) Может убрать из комментов слово "хендл" и заменить более понятным "дескриптор"? для кого как понятнее. Дескриптор это в винде, в ДОСе были хендлы. Мне лично слово хендл понятнее, чем дескриптор. Лично мне кажется что можно и так и так писать. Просто на дескриптор придется править текст во многих местах. |
Автор: | Pretorian [ Вт фев 10, 2009 16:01 ] |
Заголовок сообщения: | |
Код: \ Убрать со стека пару ячеек x1 x2. CODE TDROP ( d --> ) MOV tos , 2 CELLS [top] dheave 3 CELLS exit END-CODE Перевод: Код: CODE TDROP
MOV EAX , [EBP+8] LEA EBP , [EBP+12] RET END-CODE Комментарий и стековая диаграмма, расходится с кодом. Код делает ( n d -> ) или ( n n n -> ). Что правильно код или комментарии? |
Автор: | chess [ Вт фев 10, 2009 16:43 ] |
Заголовок сообщения: | |
Исходный код правильный, а комментарий нет Твой комм. правильный Код делает ( n d -> ) или ( n n n -> ). |
Автор: | Pretorian [ Вт фев 10, 2009 18:30 ] |
Заголовок сообщения: | |
mOleg писал(а): Дескриптор это в винде, в ДОСе были хендлы. Мне лично слово хендл понятнее, чем дескриптор.
По моему одно и тоже, только вроде "Дескриптор" поруссявее. Кстати в винде везде handle в англо язычных-документах. |
Автор: | Wlad [ Вт фев 10, 2009 18:57 ] |
Заголовок сообщения: | |
В Виндовых руководствах обычно всегда указывают НЕ смешивать и НЕ путать "хэндл" и "дескриптор"... |
Автор: | Pretorian [ Вт фев 10, 2009 19:16 ] |
Заголовок сообщения: | |
Wlad писал(а): В Виндовых руководствах обычно всегда указывают НЕ смешивать и НЕ путать "хэндл" и "дескриптор"...
Может фразу договорить и сказать в чем отличие? |
Автор: | mOleg [ Вт фев 10, 2009 20:39 ] |
Заголовок сообщения: | |
Pretorian писал(а): Комментарий и стековая диаграмма, расходится с кодом. Код делает ( n d -> ) или ( n n n -> ). Что правильно код или комментарии? да, коментарий не верный - исправил. Wlad писал(а): В Виндовых руководствах обычно всегда указывают НЕ смешивать и НЕ путать "хэндл" и "дескриптор"...
хотя чем они отличаются? по сути и то и другое дескриптор, а хэндл - это из ДОСа как бы осталось, и связывается с файлом. Но дескриптор или идентификатор или хэндл, какая разница, если смысл один? |
Автор: | Pretorian [ Пт фев 13, 2009 08:51 ] |
Заголовок сообщения: | |
Ошибка в комментарии: Код: \ прочитать значение с вершины локального стека CODE L+ ( N --> ) ADD [ltop] , tos dpop tos exit END-CODE Стековая диаграмма не верна: Код: \ перенести число двойной длины с локального стека на стек данных
CODE DL> ( d --> l: d ) dpush tos MOV temp , CELL [ltop] dpush temp MOV tos , [ltop] LEA ltop , 2 CELLS [ltop] exit END-CODE Предлагаю изменить стековую диаграмму у L@ на ( l: n --> l: n d: n ) mOleg писал(а): Wlad писал(а): В Виндовых руководствах обычно всегда указывают НЕ смешивать и НЕ путать "хэндл" и "дескриптор"... хотя чем они отличаются? по сути и то и другое дескриптор, а хэндл - это из ДОСа как бы осталось, и связывается с файлом. Но дескриптор или идентификатор или хэндл, какая разница, если смысл один? Согласен что разницы нет, а если у кого то есть "НО" то смотрим сначало CreateFile. |
Страница 1 из 4 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |