iarspider писал(а):
А вот фиг - не eax, а ecxЭто тебе - фиг! ecx я тут использовал как временный регистр, а то, что третий параметр в Дельфях как раз в ecx передаётся, делает разработку макроса с тремя параметрами сложной и не такой элегантной, как первые два (вызов из С++ с использованием макроса абсолютно не отличался от Дельфишного, несмотря на применение промежуточной процедуры, которая, к счастью полностью подставилась inline). Self действительно передаётся первым параметром, а это eax, после чего в начале метода в стеке сохраняется ebx, а в него уже засылается eax. Таким образом Self обычно находится в регистре ebx.