Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Прочие языки программирования > Assembler
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 20.11.2015, 21:30
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,386
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
вернулись с чего начали )
Нет. Pos заменится на CX сам, и будет сохранен твоим кодом в локальной переменной. Ошибки с несохранением CX не будет, потому что он сохранён. При этом, если Pos вдруг однажды переедет в другой регистр (в dx, например), то при сохранении в переменную делфа просто подставит вместо Pos регистр dx, и все по-прежнему будет нормально.
Цитата:
кстате self.fmemory она тоже "оптимизирует"
и что остается?
Потому что не Self.fMemory, а так, как я писал ранее из справки:
Цитата:
MOV EAX,(TRect PTR [EDX]).B.X
MOV EAX,TRect([EDX]).B.X
MOV EAX,TRect[EDX].B.X
MOV EAX,[EDX].TRect.B.X
Т.е. с явным указанием регистра, где сейчас находится self. Конечно, делфа запросто может не дать посмотреть значение в Watch с таким комментарием - потому что код делала не она, а ты, и она понятия не имеет, что там в каких регистрах находится.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 20.11.2015 в 21:34.
Ответить с цитированием
  #17  
Старый 20.11.2015, 22:14
Аватар для a.n.d.r.e.w
a.n.d.r.e.w a.n.d.r.e.w вне форума
Прохожий
 
Регистрация: 01.07.2015
Сообщения: 28
Версия Delphi: delphi xe7
Репутация: 10
По умолчанию

если я вставлю еще одну переменную какуюнибудь hez в функцию слева от pos, то pos непременно перекочует в dx, и мой код работать не будет. хотя тогда когда я буду это делать наверняка я пойму что у меня ассемблер и надо бы насторожиться и поменять регистры.
всеже хотелось бы понять, отключается эта оптимизация или нет?
может в какой другой топик написАть?
Ответить с цитированием
  #18  
Старый 20.11.2015, 23:17
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,386
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
всеже хотелось бы понять, отключается эта оптимизация или нет?
Не думаю. Со встроенным ассемблером всегда сопряжено N-ное количество багов и недоработок, потому что используется он крайне редко.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:07.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2017

ВКонтакте   Facebook   Twitter