Schau mal dort rein, da dein Free jetzt einen Parameter besitzt, wird da vom Compiler noch zusätzlicher Code eingefügt, welcher jetzt vermutlich mit deinem AssemblerCode etwas in Konflickt gerät.
Inline Assembler und automatische Optimierung?
(oder du hast einfach nur einen Fehler beim Abschreiben gemacht)