Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема в Delphi!!! Это у всех так или только у меня??

35K
14 августа 2008 года
heor
17 / / 20.07.2008
Это у всех так или только у меня? Borland Delphi 7.
Код:
program Project1;
{$APPTYPE CONSOLE}
procedure proc1;
var
 ff : boolean;
 procedure proc2;
 begin
  asm
   lea eax, ff
   mov [eax], 1         // Тут ошибка
  end;
 end;
 procedure proc3;
 begin
  asm
   mov ff, 1         // Почему ff не меняеться
  end;
 end;
begin
 proc3;
 proc2;
 if ff then writeln('уря');
end;
begin
 proc1;
 readln;
end.


Еще в Дельфях бывает ситуация: пишешь код, и при определенном коде время компиляции программы долгое. Около 5 - 10 сек(Обычно дельфи компилирует быстро < 1 сек). Это так раздражает.
551
14 августа 2008 года
Pavia
357 / / 22.04.2004
все меняется
mov [eax], 1 // Тут ошибок нет.

Цитата:
Еще в Дельфях бывает ситуация: пишешь код, и при определенном коде время компиляции программы долгое. Около 5 - 10 сек(Обычно дельфи компилирует быстро < 1 сек). Это так раздражает.

Было похожее когда сторонняя программа переодически загружала процессор.

35K
15 августа 2008 года
heor
17 / / 20.07.2008
 
Код:
asm
   lea eax, ff
   mov [eax], 1         // да тут ошибок нет
  end;

Меняеться. Вопрос в том что. В моем дельфи @ff = $12FFA7, а в eax после lea содержиться $12FF97. Из-за этого ff не меняеться, мало того при выполнении
 
Код:
if ff then writeln('уря');
программа вылетает с ошибкой 'Память не может быть read', и не завершаеться до конца как положенно. Даже 'уря' не пишет.

Может у меня Delphi косячный?
6
15 августа 2008 года
George
4.1K / / 05.01.2007
не надо вот на среду, а... ищи ошибку в коде
35K
15 августа 2008 года
heor
17 / / 20.07.2008
Цитата:
не надо вот на среду, а... ищи ошибку в коде


Это что такое? Нечего здесь флудить. Если такой умный подсказал бы, а нет молчи.

288
15 августа 2008 года
nikitozz
1.2K / / 09.03.2007
Цитата: heor
Это что такое? Нечего здесь флудить. Если такой умный подсказал бы, а нет молчи.



Washington, кстати, не флудит, а говорит полезные вещи. В 99,9999 процентах, когда написанная программа не работает - это ошибка кода, а не среды.

6
15 августа 2008 года
George
4.1K / / 05.01.2007
ты ещё скажи, чтоб я тя жить не учил :D

Delphi 7 насколько я знаю, самая стабильная среда. Так что проблема в прокладке между стулом и клавиатурой...
35K
15 августа 2008 года
heor
17 / / 20.07.2008
Цитата:
Delphi 7 насколько я знаю, самая стабильная среда


Ха. А вот и нет. Из-за этих 2х косяков, она лишаеться звания самой-самой. Хорашая может, я неспорю хорошая, но Turbo Pascal, по времени компиляции и количеству косяков лучше. Да и еще ассемблер.(Я еще не встречал лучше этих 2х прог. Хотя ассемблер это не среда, а язык). Turbo Pascal самый лучший. Так что не но, но.

Сдесь собрались умники, как я вижу. Раз так, может мне кто-нить скажет в чем ошибка?

6
15 августа 2008 года
George
4.1K / / 05.01.2007
чушь несёшь. честно. нафига свои косяки на среду валить? привычки сваливать свою вину на других? а когда говорят об этом, называть всех умниками? думаешь, будешь так вести диалог, тебе будет ктото помогать? искать последствия твоих кривых рук? наивно...
35K
15 августа 2008 года
heor
17 / / 20.07.2008
Цитата:
нафига свои косяки на среду валить


где косяк?

288
15 августа 2008 года
nikitozz
1.2K / / 09.03.2007
Цитата: heor

Сдесь собрались умники, как я вижу. Раз так, может мне кто-нить скажет в чем ошибка?



Скажут, как только вы перестаните хамить в ответ на попытки вам помочь.

35K
15 августа 2008 года
heor
17 / / 20.07.2008
Цитата:
в ответ на попытки вам помочь

. Ха, пока я не видел ни одной попытки. Хотя нет, первый пост от Pavia.

241
15 августа 2008 года
Sanila_san
1.6K / / 07.06.2005
heor'у нарушение за некорректное поведение. Следите за собой, пожалуйста, и выражайтесь по существу.
Цитата:
Ха, пока я не видел ни одной попытки. Хотя нет, первый пост от Pavia.


Вам никто не обязан отвечать и помогать. Ваши косяки - лично ваши проблемы, и экзаменовать других за помощь как минимум невежливо. В конце концов, для этого имеется репутация. И перенесите разборки в приват. На открытом форуме им не место.

6
15 августа 2008 года
George
4.1K / / 05.01.2007
Не думайте, что вам должны ответить. Вам никто ничего не должен; вы же, в конечном счете, не платили за эти услуги. Вы получите ответ, если заслужите его, задавая существенный, интересный и наводящий на размышления вопрос — вопрос, неявно дающий сообществу новый опыт, а не просто пассивно требующий от других поделиться знаниями.(с)We - подпись kot_'a
303
15 августа 2008 года
makbeth
1.0K / / 25.11.2004
heor, а почему бы тебе не посмотреть под отладчиком в дизассемблере что на самом деле сгенерировал компилятор (тем более с оптимизатором)? Ассемблер штука тонкая... Сколько реально занимает в стеке ff? Не стоит ли явно указать ее размер в ассемблерном коде (dword ptr, word ptr)? Скорее всего с этим и связано несовпадение адресов.
Ты задал вопрос "Это у всех так... ?". На что тебе Washington вполне резонно ответил, что нет, не у всех - надо искать ошибку в коде (и был прав). Зачем же лезть в бутылку?
35K
15 августа 2008 года
heor
17 / / 20.07.2008
Ура разобрался. Большое спасибо makbeth.
Странная штука Delphi. Один и тот же код генерируте по разному, в режиме оптимизации и без. Естественно я оптимизацию убрал, чтоб можно было отлаживать программы, а то он некоторые переменные оптимизирует и их не возможно посмотреть.

Так вот код без оптимизатора
Код:
proc2 proc
 push ebp
 mov ebp, esp
 lea eax, [ebp - $04]
 mov [eax], $01
 pop ebp
 ret
proc2 endp
...
push ebp
call proc2
pop ecx


Код с оптимизатором.
 
Код:
proc2 proc
 lea eax, [ebp - $04]
 mov [eax], $01
 ret
proc2 endp
...
call proc2


Странно. вроде один и тот же код, а компилируеться по разному. Вообщем дело в оптимизации.
1.9K
15 августа 2008 года
andriano
474 / / 10.01.2008
Цитата: heor
Странная штука Delphi. Один и тот же код генерируте по разному, в режиме оптимизации и без.

Это - сразу в перлы!

536
16 августа 2008 года
alex-kniaz
382 / / 07.08.2008
Ты попробуй ассемблерный код написать в виде функции на твоём ЁПРСТмблере, а потом говори, что косяк в DELPHI (если заработает).
Кстати, компилируй прогу в Делфи, но запускай её в файл-менеджере (желательно) иначе будешь ловить даже те косяки, для которых написал обработчики.
______________
Накосячил - нечего сваливать свою вину на других.
Извините - вторую страницу не заметил
6
18 августа 2008 года
George
4.1K / / 05.01.2007
Цитата: alex-kniaz
Кстати, компилируй прогу в Делфи, но запускай её в файл-менеджере (желательно) иначе будешь ловить даже те косяки, для которых написал обработчики.


отлов косяков, для которых написал обработчики в Delphi можно отключить

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог