Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> asm (FPU) вставки в vs2008 
V
    Опции темы
ButtonOFF
Дата 29.1.2012, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


улетевший
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



Помогите перенсти этот код на С. Желательно вставкой как есть, я чето немогу найти описание  синтаксиса вставок в VS2008, в т.ч. FPU.

Код

...
   mov     eax, [MouseState.lX]   
   mov     ebx, xscr
   add     eax, ebx
   cmp     eax, ebx
   je      @Nox
   mov     xscr, eax
   cmp     eax, ebx
   jb      right 

 fild  MouseState.lX  
 fmul  Kxscr 
 fmul  DeltaTimeF 
 fld st(0)
 fadd xscr
 fstp  xscr 
 fadd zscr
 fstp zscr
   jmp     @Nox             
   right:                  
 fild  MouseState.lX  
 fmul  Kxscr 
 fmul  DeltaTimeF 
 fld st(0)
 fadd xscr
 fstp  xscr 
 fadd zscr
 fstp zscr
   @Nox:       
...

PM MAIL   Вверх
Dem_max
Дата 29.1.2012, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Скажи сначала что этот код делает и есть ли смысл его вообще вставлять.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
ButtonOFF
Дата 29.1.2012, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


улетевший
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



Цитата(Dem_max @ 29.1.2012,  15:48)
Скажи сначала что этот код делает и есть ли смысл его вообще вставлять.

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

MouseState.lX и MouseState.lY входные параметры, остальные просто переменные

Кто-нибуть может это перевести на С ?

Это сообщение отредактировал(а) ButtonOFF - 29.1.2012, 19:19
PM MAIL   Вверх
Dem_max
Дата 30.1.2012, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



Цитата

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

Какой  вразумительный ответ.


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
bsa
Дата 30.1.2012, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



ButtonOFF, твой код эквивалентен этому:
Код
if (MouseState.lX) {
     xscr = MouseState.lX + xscr;
     double t = (double)MouseState.lX * Kxscr * DeltaTimeF;
     xscr += t;
     zscr += t;
}
//label Nox:
Более того, в твоем коде есть ветвление. Он обе ветки выполняют одно и тоже действие (до и после метки right), поэтому я их объединил и убрал лишнее условие.

Добавлено через 8 минут и 14 секунд
FPU - это стековый процессор. Т.е. все параметры у него лежат в стеке, а операции работают с ними. ST(i) - это адресация по стеку (0 - вершина):
FILD - загрузить целое число в стек
FMUL - умножить число в стеке на аргумент (результат заменит вершину стека)
FLD - дублировать вершину стека (FLD ST(0) - сделать копию вершины и положить в стек - в стеке будет два одинаковых значения)
FADD - сложить вершину стека с аргументов (результат заменит вершину стека)
FSTP - выгрузить вершину стека в аргумент (число из вершины стека удаляется, стек смещается на одну позицию назад).

Это сообщение отредактировал(а) bsa - 30.1.2012, 10:05
PM   Вверх
ButtonOFF
Дата 30.1.2012, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


улетевший
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



Dem_max, что спросил то и ответил  smile 
bsa,  Спасибо за перевод.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.