Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
Вроде больше не выпадает, ну и ладно.
Вроде больше не выпадает, ну и ладно.
|
|
|
|
Добавлено: Вт июл 28, 2009 11:44 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
MrYuran писал(а): Что-то этот F. часто эксепшены вываливает. Понадёжнее какие слова будут? Чтобы с нужными проверками и т.д.
Слова F. FE. FS. печатают число со стека плавающей арифметики
( не со стека данных! )
P.S. Какая цепочка команд вызывает исключение?
Заметил вызов исключения: 0xFFFFFFFF DATA>FLOAT32 F.
далее вызов F. выводит infinity
Возможно это подразумевалось.
а может проблему решит если добавить явный вызов слова FINIT вначале?
[quote="MrYuran"]Что-то этот F. часто эксепшены вываливает. Понадёжнее какие слова будут? Чтобы с нужными проверками и т.д. [/quote]
Слова F. FE. FS. печатают число со стека плавающей арифметики
( не со стека данных! )
P.S. Какая цепочка команд вызывает исключение?
Заметил вызов исключения: 0xFFFFFFFF DATA>FLOAT32 F.
далее вызов F. выводит infinity
Возможно это подразумевалось.
а может проблему решит если добавить явный вызов слова FINIT вначале?
|
|
|
|
Добавлено: Вт июл 28, 2009 09:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Что-то этот F. часто эксепшены вываливает.
Понадёжнее какие слова будут?
Чтобы с нужными проверками и т.д.
FF FF FF FF Ktermo EXCEPTION! CODE:C0000090 ADDRESS:00553458 WORD:F=
USER DATA: 00341E94 THREAD ID: 00000F64 HANDLER: 0012EFE8
STACK: (3) 7FFD9000 00195C6E 00150000 7C816D4F FFFFFFFF FFFFFAFF [FFFFFAFF]
RETURN STACK:
0012EFBC : 0056E0FF PrintFInf
0012EFC0 : 0056E22C F.
0012EFC4 : 0056EFF2 PrintFloat
Что-то этот F. часто эксепшены вываливает.
Понадёжнее какие слова будут?
Чтобы с нужными проверками и т.д.
FF FF FF FF Ktermo EXCEPTION! CODE:C0000090 ADDRESS:00553458 WORD:F=
USER DATA: 00341E94 THREAD ID: 00000F64 HANDLER: 0012EFE8
STACK: (3) 7FFD9000 00195C6E 00150000 7C816D4F FFFFFFFF FFFFFAFF [FFFFFAFF]
RETURN STACK:
0012EFBC : 0056E0FF PrintFInf
0012EFC0 : 0056E22C F.
0012EFC4 : 0056EFF2 PrintFloat
|
|
|
|
Добавлено: Вт июл 28, 2009 08:51 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
mOleg писал(а): лучше для работы использовать знакомый инструмент, а незнакомый осваивать, по-возможности, самостоятельно
<offtop>
Такой уж я человек... Привык делать то, что нравится, и так, как хочется.
Тем более в пятницу обнаружил, что билдер сломался...
Переставлять - ещё что-нето отвалится (GCC к примеру), и так по кругу...
И потом, в стрессовой ситуации соображать начинаешь быстрее
</offtop>
[quote="mOleg"]лучше для работы использовать знакомый инструмент, а незнакомый осваивать, по-возможности, самостоятельно[/quote]
<offtop>
Такой уж я человек... Привык делать то, что нравится, и так, как хочется.
Тем более в пятницу обнаружил, что билдер сломался...
Переставлять - ещё что-нето отвалится (GCC к примеру), и так по кругу...
И потом, в стрессовой ситуации соображать начинаешь быстрее
</offtop>
|
|
|
|
Добавлено: Пн июл 27, 2009 16:49 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
MrYuran писал(а): Блин, если б начальник узнал, чем я занимаюсь уже не первый день вместо того чтобы за полчаса накидать в билдере отладчик и заниматься непосредственной работой...
гм.
я вот что хочу сказать, вы дискредитируете форт в глазах общественности (начальника) таким образом 8(
лучше для работы использовать знакомый инструмент, а незнакомый осваивать, по-возможности, самостоятельно.
А то опять будут на бедный Форт бочку катить 8( все-таки под него надо свои мозги несколько иначе поставить, и на это нужно время...
это мое ИМХО
[quote="MrYuran"]Блин, если б начальник узнал, чем я занимаюсь уже не первый день вместо того чтобы за полчаса накидать в билдере отладчик и заниматься непосредственной работой...[/quote]
гм.
я вот что хочу сказать, вы дискредитируете форт в глазах общественности (начальника) таким образом 8(
лучше для работы использовать знакомый инструмент, а незнакомый осваивать, по-возможности, самостоятельно.
А то опять будут на бедный Форт бочку катить 8( все-таки под него надо свои мозги несколько иначе поставить, и на это нужно время...
это мое ИМХО :)
|
|
|
|
Добавлено: Пн июл 27, 2009 16:44 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Гость писал(а): Conductivity @ DATA>FLOAT32 F. CR ( можно FE. )
Не, Conductivity @ не нужно, число уже на стеке.
Йесс!!
Dpack
-------- Send: --------
FF 42 0 0 0 0 -146 0
-------- Echo: --------
FF 42 0 0 0 0 BA
-------- Receive: --------
FE Preamble FE OK
1 Status 1 OK
D2 4 Temperature 12 ,34 oC
E1 10 Concentrat 43 ,21 %
0 50 9A 44 449A5000 Conductivity 1234.5000
0 0 0 0 0 Corrected Conductivity 0.0000000
FF CS=FF OK
Ok ( FFFFFFFF(-1) )
Блин, если б начальник узнал, чем я занимаюсь уже не первый день вместо того чтобы за полчаса накидать в билдере отладчик и заниматься непосредственной работой...
Однако, направление ROT-ации я уже не путаю...
[quote="Гость"]Conductivity @ DATA>FLOAT32 F. CR ( можно FE. )[/quote]
Не, Conductivity @ не нужно, число уже на стеке.
Йесс!!
Dpack
-------- Send: --------
FF 42 0 0 0 0 -146 0
-------- Echo: --------
FF 42 0 0 0 0 BA
-------- Receive: --------
FE Preamble FE OK
1 Status 1 OK
D2 4 Temperature 12 ,34 oC
E1 10 Concentrat 43 ,21 %
0 50 9A 44 449A5000 Conductivity 1234.5000
0 0 0 0 0 Corrected Conductivity 0.0000000
FF CS=FF OK
Ok ( FFFFFFFF(-1) )
Блин, если б начальник узнал, чем я занимаюсь уже не первый день вместо того чтобы за полчаса накидать в билдере отладчик и заниматься непосредственной работой...
:dmad;
Однако, направление ROT-ации я уже не путаю... :D
|
|
|
|
Добавлено: Пн июл 27, 2009 16:36 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
MrYuran писал(а): Остался крайний штрих: FVARIABLE Conductivity ... DUP . ." Conductivity " Conductivity ! F. CR Получаю: ....
Conductivity @ DATA>FLOAT32 F. CR ( можно FE. )
P.S. Есть полезное слово DUMP ( addr # -- )
[quote="MrYuran"]Остался крайний штрих: FVARIABLE Conductivity ... DUP . ." Conductivity " Conductivity ! F. CR Получаю: .... [/quote]
Conductivity @ DATA>FLOAT32 F. CR ( можно FE. )
P.S. Есть полезное слово DUMP ( addr # -- )
|
|
|
|
Добавлено: Пн июл 27, 2009 15:36 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
VoidVolker писал(а): FLOAT r 12.3E r SF! r @ . 4144ССCD
Ура. Заработало.
Остался крайний штрих:
FVARIABLE Conductivity
...
DUP . ." Conductivity " Conductivity ! F. CR
Получаю:
\ на стеке (общем) 449A5000 == 1234,5
449A5000 Conductivity EXCEPTION! CODE:C0000092 ADDRESS:0056E0F3 WORD:PrintFInf
USER DATA: 00341E94 THREAD ID: 00001778 HANDLER: 0012EFE8
STACK: (3) 7FFD7000 0021F5FE 00150000 7C816D4F FFFFFFFF FFFFFC03 [0056D170]
RETURN STACK:
0012EFC4 : 0056D19F FINF
0012EFC8 : 0056E0FA PrintFInf
0012EFCC : 0056E22C F.
0012EFD0 : 0056F21A FormFrame
0012EFD4 : 0056F287 Dpack
0012EFD8 : 00567C5B INTERPRET_
0012EFDC : 00567CE2 INTERPRET
0012EFE0 : 00567F09 MAIN1
0012EFE4 : 0055516C CATCH
0012EFE8 : 0012EFF8
0012EFEC : 0012FFBC
0012EFF0 : 00567F59 QUIT
0012EFF4 : 0055516C CATCH
0012EFF8 : 00000000
0012EFFC : 0012FFBC
0012F000 : 0056B07D ERR-EXIT
0012F004 : 0056BC66 (INIT)
END OF EXCEPTION REPORT
А тут какая собака порылась?
[quote="VoidVolker"]FLOAT r 12.3E r SF! r @ . 4144ССCD[/quote]
Ура. Заработало.
Остался крайний штрих:
FVARIABLE Conductivity
...
DUP . ." Conductivity " Conductivity ! F. CR
Получаю:
\ на стеке (общем) 449A5000 == 1234,5
449A5000 Conductivity EXCEPTION! CODE:C0000092 ADDRESS:0056E0F3 WORD:PrintFInf
USER DATA: 00341E94 THREAD ID: 00001778 HANDLER: 0012EFE8
STACK: (3) 7FFD7000 0021F5FE 00150000 7C816D4F FFFFFFFF FFFFFC03 [0056D170]
RETURN STACK:
0012EFC4 : 0056D19F FINF
0012EFC8 : 0056E0FA PrintFInf
0012EFCC : 0056E22C F.
0012EFD0 : 0056F21A FormFrame
0012EFD4 : 0056F287 Dpack
0012EFD8 : 00567C5B INTERPRET_
0012EFDC : 00567CE2 INTERPRET
0012EFE0 : 00567F09 MAIN1
0012EFE4 : 0055516C CATCH
0012EFE8 : 0012EFF8
0012EFEC : 0012FFBC
0012EFF0 : 00567F59 QUIT
0012EFF4 : 0055516C CATCH
0012EFF8 : 00000000
0012EFFC : 0012FFBC
0012F000 : 0056B07D ERR-EXIT
0012F004 : 0056BC66 (INIT)
END OF EXCEPTION REPORT
А тут какая собака порылась?
|
|
|
|
Добавлено: Пн июл 27, 2009 15:15 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
VoidVolker писал(а): MrYuran писал(а): Однако остался ещё вопрос: как мне 4 байта (формат IEEE 754) перенести на флотовый стек, а потом обратно? .
DATA>FLOAT32 FLOAT>DATA32 \ для коротких переменных см. src\spf_floatkern.f
[quote="VoidVolker"] [quote="MrYuran"]Однако остался ещё вопрос: как мне 4 байта (формат IEEE 754) перенести на флотовый стек, а потом обратно? [/quote] .[/quote]
DATA>FLOAT32 FLOAT>DATA32 \ для коротких переменных см. src\spf_floatkern.f
|
|
|
|
Добавлено: Пн июл 27, 2009 14:50 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
spf_floatkern.f
CODE 2.E
MOV DWORD -4 [EBP], # 2
FILD DWORD -4 [EBP]
RET
END-CODE
spf_floatkern.f
CODE 2.E
MOV DWORD -4 [EBP], # 2
FILD DWORD -4 [EBP]
RET
END-CODE
|
|
|
|
Добавлено: Пн июл 27, 2009 14:27 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
MrYuran писал(а): 12.3E Ok \ число на float-стеке float F! Ok \ занёс в переменную HEX Ok float @ \ хочу посмотреть значение Ok ( 9999999A(-66666666) ) \ ерунда какая-то Должно получиться 41 44 СС CD (или наоборот) Float-переменные хранят флоат-числа в виде 8 байт, поэтому и результат такой. Чтобы получилось 41 44 СС CD необходимо сохранить флоат-число в переменную в формате short-float (4 байта): Код: FLOAT r 12.3E r SF! r @ . 4144ССCD MrYuran писал(а): Однако остался ещё вопрос: как мне 4 байта (формат IEEE 754) перенести на флотовый стек, а потом обратно?
Должны быть слова для передачи данных между стеками без преобразования. Как вариант можно сохранить данные в переменную, а из неё их извлечь на стек.
.
[quote="MrYuran"] 12.3E Ok \ число на float-стеке float F! Ok \ занёс в переменную HEX Ok float @ \ хочу посмотреть значение Ok ( 9999999A(-66666666) ) \ ерунда какая-то Должно получиться 41 44 СС CD (или наоборот)[/quote] Float-переменные хранят флоат-числа в виде 8 байт, поэтому и результат такой. Чтобы получилось [b]41 44 СС CD[/b] необходимо сохранить флоат-число в переменную в формате short-float (4 байта): [code]FLOAT r 12.3E r SF! r @ . 4144ССCD[/code] [quote="MrYuran"]Однако остался ещё вопрос: как мне 4 байта (формат IEEE 754) перенести на флотовый стек, а потом обратно? [/quote]
Должны быть слова для передачи данных между стеками без преобразования. Как вариант можно сохранить данные в переменную, а из неё их извлечь на стек.
.
|
|
|
|
Добавлено: Пн июл 27, 2009 14:26 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
: 2e 2.E ;
: 1e 1.E ;
: .e .E ;
И откуда взялись 2.E, 1.E и .E, если ничего не подключалось?
: 2e 2.E ;
: 1e 1.E ;
: .e .E ;
И откуда взялись 2.E, 1.E и .E, если ничего не подключалось?
|
|
|
|
Добавлено: Пн июл 27, 2009 14:22 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Гость писал(а): и смотреть стековую нотацию нужных слов библиотеки
: F~ ( F1 F2 F3 -- FLAG ) \ FLOAT-EXT
Непонятно ни назначение слова, ни комментарий
В каком хотя бы виде эти флоты в памяти хранятся?
Нигде никаких упоминаний...
[quote="Гость"]и смотреть стековую нотацию нужных слов библиотеки[/quote]
: F~ ( F1 F2 F3 -- FLAG ) \ FLOAT-EXT
Непонятно ни назначение слова, ни комментарий
В каком хотя бы виде эти флоты в памяти хранятся?
Нигде никаких упоминаний...
|
|
|
|
Добавлено: Пн июл 27, 2009 14:12 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Однако остался ещё вопрос: как мне 4 байта (формат IEEE 754) перенести на флотовый стек, а потом обратно?
12.3E
Ok \ число на float-стеке
float F!
Ok \ занёс в переменную
HEX
Ok
float @ \ хочу посмотреть значение
Ok ( 9999999A(-66666666) ) \ ерунда какая-то
Должно получиться 41 44 СС CD (или наоборот)
Однако остался ещё вопрос: как мне 4 байта (формат IEEE 754) перенести на флотовый стек, а потом обратно?
12.3E
Ok \ число на float-стеке
float F!
Ok \ занёс в переменную
HEX
Ok
float @ \ хочу посмотреть значение
Ok ( 9999999A(-66666666) ) \ ерунда какая-то
Должно получиться 41 44 СС CD (или наоборот)
|
|
|
|
Добавлено: Пн июл 27, 2009 13:37 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Спасибо, теперь допёр
FVARIABLE float
Ok
12.3E
Ok
float F!
Ok
float F.
infinity Ok ( 5705780 )
float F@ F.
12.300000 Ok ( 5705780 )
Спасибо, теперь допёр
FVARIABLE float
Ok
12.3E
Ok
float F!
Ok
float F.
infinity Ok ( 5705780 )
float F@ F.
12.300000 Ok ( 5705780 )
|
|
|
|
Добавлено: Пн июл 27, 2009 13:19 |
|
|
|
|