Ivan Kuvshinov
2006-05-19 19:27:01 UTC
wormball
тмт паскаль задаёт всё новые загадки.загадка n. когда я передавал объекты в функции по именам, вроде func(arg:
object_type), моя программа глючила и не работала, однако после того, как я
стал передавать их с помощью указателей, вроде func(arg: ^object_type), она
замечательно заработала.
загадка n+1. когда я вместо func(arg: object_type) поставил func(arg:
^object_type) и соответственно в теле функции написал arg^.run вместо arg.run,
моя программа заработала в 2 (!!) раза быстрее.
загадка n+2. когда у меня в строке uses значилось слово debug, та же программа
после нескольких минут нормальной работы выдавала general protection fault или
invalid floating point operation, однако после исключения данного слова
количество ошибок по крайней мере снизилось, в большинстве случаев они даже не
появляются, хотя иногда всё же имеют место быть, ума не приложу почему, ведь
вопервых она может работать безошибочно, а вовторых перед появлением ошибки
она несколько минут работает совершенно нормально. причём перераспределение
памяти происходит только в начале, а в процессе работы она обращается к уже
распределённой памяти. можно назвать ето загадкой n+3.
одним словом полтергейст ;D ;D
ещёфокус. я пишу
Procedure PutPixel(x, y: Longint; c: byte); code;
asm
mov eax, y
cmp eax, 0
js @end
cmp eax, 200
jns @end
imul eax, 320
mov edx, x
cmp edx, 0
js @end
cmp edx, 320
jns @end
add eax, edx
mov dl, c
mov byte ptr [bm+eax], dl
@end:
End;
, и она не работает, однако когда я пишу
Procedure PutPixel(x, y: Longint; c: byte); assembler;
, такая же процедура работает.
КИА