Исключительно в качестве примера рекомендую Megagad'у и Intelator'у поискать информацию о Franke.387, Q387, Q87. Заодно им же можно почитать на досуге занимательную художественную литературу под названием "Intel® 64 and IA-32 Architectures Software Developer's Manual"/"AMD64 Architecture Programmer’s Manual", например, для понимания принципов работы процессоров 386+.
Intelator писал(а):
Он не знает, что делать. Чтобы это исправить, надо переписывать программу
Смеялся долго, спасибо за продление жизни посредством смеха . Процессор как раз знает, что ему делать .
Intelator писал(а):
Нормальный не тормозящий эмулятор этих аппаратных инструкций написать невозможно
1. Автор изначально не оговаривал степень уменьшения скорости обработки. 2. Автор понимал, что это будет долго и интересовался принципиальной возможностью эмуляции. 3. На это вы довольно категорично ответили:
Intelator писал(а):
Это невозможно
Т.е. мягко говоря, попытались ввести в заблуждение.
Advanced member
Статус: Не в сети Регистрация: 27.02.2007 Откуда: Москва Фото: 54
Intelator писал(а):
Нормальный не тормозящий эмулятор этих аппаратных инструкций написать невозможно
Вы не писали про тормоза, вы писали что это невозможно вообще. Да и если быть честным, падение производительности в два-три раза-это не фатально по сравнению с полной неработоспособностью.
Intelator писал(а):
на наглядных примерах
Лопата с вертолетом-это бред, а не пример. Это не соответствует истине хотя бы просто потому, что набор команд х86-процессора является полным по Тьюрингу.
можно было сделать тоже самое при помощи MMX? Добавлено спустя 2 минуты, 1 секунду ой, нет, протупил Добавлено спустя 2 минуты, 18 секунд в общем, чем долго рыть в этом направлении глубоко в инете, или (:shock:) самому писать, проще отказаться от одной программы Добавлено спустя 7 минут, 30 секунд решил попробовать другое решение, с программированием не связанное
Если подразумевается только передача данных в памяти, то IMHO можно скатиться и до классического mov EAX,[mem1] mov [mem2],EAX Если необходимы дальнейшие MMX/SSE-операции c регистрами, то movd mm0,[mem1] movd [mem2],mm0
Advanced member
Статус: Не в сети Регистрация: 27.02.2007 Откуда: Москва Фото: 54
The Lich, JIT для x86-кода по ссылке в принципе есть, надо только его адаптировать под свои нужды Ради одной программы необходимость сомнительна, но это несравнимо проще, чем писать все самому заново.
Junior
Статус: Не в сети Регистрация: 29.08.2007 Откуда: Омск
Спасибо еще раз. Но адаптировать JIT - это уже слишком сложно для меня. Проще попробовать другие способы для одной проги, перейти на более раннюю версию например. Мне хотелось знать, можно ли сэмулировать SSE и есть ли эмули. Узнал
Advanced member
Статус: Не в сети Регистрация: 27.02.2007 Откуда: Москва Фото: 54
Возможно, если вдруг станет очень-очень скучно, возьмусь приделывать SSE к этому JIT
В случае конкретной проги проще не заниматься эмуляцией, а пропатчить бинарники, если нет альтернатив.. В особо тяжелых случаях неугодный код можно просто занопить, как некоторые на краклабе делают. Иногда помогает, если SSE-код использовался для генерации красивостей )
Advanced member
Статус: Не в сети Регистрация: 27.02.2007 Откуда: Москва Фото: 54
The Lich, покопался в исходниках, ничего там страшного нет... Все фактически уже реализовано, хуки на любую инструкцию ставить можно, и обработчики хоть на C писать.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения