![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
Ты кой-чего попутал...Ты то про Delphi говоришь...А мы про Turbo Pascal..Про Делфи то я знаю...
![]() |
![]() |
![]() |
![]() |
#22 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
Borland Pascal v7 генерирует такой код при операции T := Z+Q:
Код:
1) происходит сохранение всех регистров Код:
Код:
Код:
Код:
Код:
Подводя итог: Паскалевская конструкция T := Q+Z; является оптимальной по скорости. Вызов внешней функции - дело не благородное и долгое. Такую примитивную операцию как сложение заменять ассемблерной вставкой не имеет никакого смысла. Я кончил.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#23 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
Ну ладно...Спасибо..
![]() |
![]() |
![]() |
![]() |
#24 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
![]()
Tronix, молодца!!! Все это же самое я высказал в своем посте (№7) одним предложением...
Перемешивай дело с бездельем и не сойдешь с ума...
|
![]() |
![]() |
![]() |
#25 | |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]() Цитата:
![]()
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
|
![]() |
![]() |
![]() |
#26 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
конечно, не так всё ужасно в случае использования ассемблерных вставок, но я согласен с предыдущими высказываниями — это далеко не всегда даёт выигрыш!
В подтверждение всего вышесказанного просто покажу ассемблерный код, который генерит TurboPascal в этих двух случаях: Код:
Код:
|
![]() |
![]() |
![]() |
#27 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
А как вы это сделали, Serge_Bliznykov?
|
![]() |
![]() |
![]() |
#28 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
откомпилировал TPC.exe с опцией -V
(это означает -V = Debug information in EXE ) потом открыл в TurboDebugger. ну, потом в TD переключил на отображение ассемблерного кода (он "увидел" отладочную информацию и, по умолчанию, начал показывать чистый код на Pascal, пришлось принудительно включить отображение - главное меню - View - CPU) и всё... |
![]() |
![]() |
![]() |
#29 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
![]()
Нифига не понял...Как эту опцию включить?
![]() |
![]() |
![]() |
![]() |
#30 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
какую опцию?!
Идём в командную строку и пишем: Код:
получаем файлик C:\TP\PAS\hTest.EXE Запускаем TurboDebugger (конкретно запускаем TD.EXE) и загружаем туда наш файлик C:\TP\PAS\hTest.EXE Какой из пунктов Вам не совсем ясен? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой код клавиши?? | RAVAL)) | Общие вопросы Delphi | 10 | 28.10.2015 12:24 |
Узнать, на какой странице выполняется код | Winlook | PHP | 1 | 27.03.2010 04:44 |
какой будет код вычисления для D | Витас | Помощь студентам | 1 | 22.03.2010 15:37 |
Имеется ли у вас какой ассемблерный код? | rusell | Помощь студентам | 5 | 04.11.2009 16:11 |
Модернизировать код, сделать его быстрее | Rusl92 | Общие вопросы Delphi | 5 | 03.11.2008 19:23 |