В ассемблерных процедурах и функциях нужно сохранять регистры EDI, ESI, ESP, EBP, and EBX и свободно оперировать регистрами EAX, ECX, and EDX.
однако если в асмовой вставке забить на вышеприведенную цитату (не сохранять EDI, EBX...), то после FPC программа работает нормально, а дельфи, как и ожидалось, выдает исключение при запуске.