PAINTCTRUCT.rcPaint is empty ?! -- STD because !!!

From
Boris Rudakov (2:5054/9.4)
To
Konstantin L. Topanov ()
Date
1996-06-25T01:12Z
Area
SU.WINDOWS.PROG
Hello Konstantin!

21 Jun 96 09:15, Konstantin L. Topanov wrote to All:

 KT> X-RealName: "Konstantin L. Topanov"


 KT>         Hi!

 >> From: Boris Rudakov <Boris_Rudakov@p4.f9.n5054.z2.fidonet.org>
 >> Message-ID: <31c96c77@p4.f9.n5054.z2.fidonet.org>
 >> Subject: [News] PAINTCTRUCT.rcPaint is empty ?!  -- STD because !!!
 >> Date: Thu, 20 Jun 96 15:01:01 +0300

 >> Единственное, что привлекло мое внимание после пары минут
 >> его разглядывания, была инструкция STD. Я, чисто проформы ради, при
 >> выхоле из функции, влепил CLD. И запустил. Когда я увидел, что все
 >> заработало, дыхание у меня перхватило, а мир начал рушиться.

 KT> В документации еще к MS C v5.0 было сказано (в той, что на русском
 KT> языке ходила), что при написании на ассемблере обязательно оставляйте
 KT> направление 'CLD', т.к. RunTime это предполагает и не устанавливает...
Урроды :( Теперь это я уже знаю. В хелпах Борланда (ни Паскалевских ни Сишных) я НИКОГДА не видел ни слова про это.

 KT> А вот кусочек из документации по VC++ v1.52c
 KT> -+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--
 KT> Preserving Registers with the Inline Assembler

 KT> An __asm block inherits whatever register values happen to result from
 KT> the normal flow of control. Within a function, you do not need to
 KT> preserve the AX, BX, CX, DX, or ES registers. You should preserve DI,
 KT> SI, DS, SS, SP, and BP.
А это уже связано с транслятором и тем как он регистры распределяет. На SI и DI операционка никакох ограничений не накладывает. Другое дело DS, SS, SP и BP.
Кстати, я в Борланде вообще всегда вырубаю register allocation.

 KT> If your function changes the direction flag using the STD or CLD
 KT> instructions, you should restore the flag to its original value.
Теперь я это знаю. Любимый Борланд не почесался это упомянуть. В итоге, я потратил на это ~2 часа.

 KT> Regards,
 KT> Konstantin L. Topanov

Boris Rudakov,               Лень - двигатель прогресса.
BBR

--- Be happy: BBR is looking at you !
 * Origin: АлкАголь малыми дозами безвреден в любых количествах (2:5054/9.4)