У меня есть эта процедура, которая меняет местами байты (младший / старший) переменной Word (она делает то же самое, что и функция System.Swap). Процедура работает, когда оптимизация компилятора выключена, но не когда она включена. Может ли кто-нибудь помочь мне с этим?
procedure SwapWord(VAR TwoBytes: word);
asm
Mov EBX, TwoBytes
Mov AX, [EBX]
XCHG AL,AH
Mov [EBX], AX
end;