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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2010, 08:38   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Ассемблерная вставка

Значит, сколько я знаю, есть такая команда математического сопроцессора:
Код:
FSIN
И вот я пишу такой код:
Код:
Function MySin(X:Extended):Extended;
Begin
       Asm
       FLD X
       FSIN
       FWAIT
       End;
End;
Однако, в строке FSIN выдаёт ошибку "Syntax Error"(типа где-то здесь синтаксическая ошибка).Вот только в чём она?
P.S.Пробовал ещё так, но тоже не катит:
Код:
Function MySin(X:Extended):Extended;
Begin
       Asm
       FLD X
       FSIN X
       FWAIT
       End;
End;
_-Re@l-_ вне форума Ответить с цитированием
Старый 17.09.2010, 11:45   #2
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

FSIN - команда 386 процессора (387 со-процессора если точнее). А борланд паскаль ничего не знает о таком процессоре, он может максимум только 286 (287 со-процессор) инструкции. Поэтому инструкции, которых не знает TP можно заменять просто на DB $xx, $cc, $yy .

Код:
asm
  fld x
  db $D9, $FE  {fsin}
  fwait
end;
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 17.09.2010, 12:42   #3
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Как он может не знать, если он знает single, double и extended, в то время как программно работает только с real'ами? Тут что-то другое...
Somebody вне форума Ответить с цитированием
Старый 17.09.2010, 12:51   #4
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Как он может не знать, если он знает single, double и extended, в то время как программно работает только с real'ами? Тут что-то другое...
Вот так вот не знает. Смотрите RTL исходники BP7.0, в частности F87H.ASM, благо доступны для скачивания.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 17.09.2010, 19:27   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А как тогда будет косинус?
_-Re@l-_ вне форума Ответить с цитированием
Старый 18.09.2010, 14:31   #6
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

fsin D9 FE
fcos D9 FF
fsincos D9 FB
Somebody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблерная вставка Serg12 Помощь студентам 5 04.05.2017 19:43
Ассемблерная вставка! treki Помощь студентам 0 16.06.2010 00:15
Ассемблерная вставка в Delphi Mixasik Общие вопросы Delphi 3 30.01.2010 00:45
Ассемблерная вставка Arigato Общие вопросы Delphi 1 25.10.2009 21:47
Почему отличаются результаты (Ассемблерная вставка в С++)? Объясните Vasiliusis Общие вопросы C/C++ 3 13.11.2008 19:17