Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2008, 23:37   #1
Jolyk
 
Регистрация: 04.06.2008
Сообщений: 7
По умолчанию Резидентно подглядываем за st(0) и виснем. В чем дело?

Резидентная программа под DOS периодически смотрит, что считает FPU в другой программе командой fst tmp. Все подвисает. Ясно, что что-то портится. Пробовал fstcw, fldcw окружить - не помогает.

P.S. Конечно команда не fstp, а именно fst. Конечно при заРЕМливании этой команды виснуть перестает.
Jolyk вне форума Ответить с цитированием
Старый 05.06.2008, 07:39   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Ты из Windows запускаешь эту программу? Если ты запускаешь эту программу из Windows, то она всё равно не сможет подглядеть что считают другие программы!
А лучше давай сюда свой код.
rpy3uH вне форума Ответить с цитированием
Старый 05.06.2008, 08:54   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Резидентная программа под DOS периодически смотрит, что считает FPU в другой программе
Это тебе как минимум Софт Айс нужно свой создать...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2008, 15:42   #4
Jolyk
 
Регистрация: 04.06.2008
Сообщений: 7
По умолчанию

Я вроде указал, что не под Windows, под DOS. Все у всех на виду. Ну или под ntvdm или DOSbox-ом если угодно. Я уже нарыл, что порчу толи регистры, толи хрен знает что типа IPTR, OPCODE, OPTR. Какой-нибудь fsave или fstenv думаю должны помочь. Будем грузить память штабелями.
Jolyk вне форума Ответить с цитированием
Старый 05.06.2008, 15:48   #5
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Jolyk, ну указатель стэка Вы у сопроцессора убиваете, что тут такого. Попробуйте FLD сразу после этого, авось поможет . Даже не представляю, зачем такая штука может понадобиться.
B_N вне форума Ответить с цитированием
Старый 05.06.2008, 17:01   #6
Jolyk
 
Регистрация: 04.06.2008
Сообщений: 7
По умолчанию

Указатель стека и сам стек это как раз единственное, что fst не трогает. Наконец-то пришлось разобраться с FPU, а то как дикий смотрел на его команды. Вобщем надо сохранять окружение и все заработало.
Код:
		fnstenv	fEnv
		fst tmp
		fldenv	fEnv

		fEnv	db	14 dup (?) ;шлите байты вагонами

Последний раз редактировалось Jolyk; 05.06.2008 в 17:03.
Jolyk вне форума Ответить с цитированием
Старый 05.06.2008, 17:14   #7
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

А-аа.. это я запамятовал чем FST от FSTP отличаются, сорри. В принципе, похожего результата можно добиться с FSAVE/FRESTOR, не пробовали?
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TASM дело тонкое!:) (Где в TASM IDE?) 3.14oner Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 15.11.2011 16:20
Создание wap сайта – совсем не сложное дело! Hallo Обсуждение статей 14 04.01.2007 17:12