Привет всем. Снова проблемы с ассемблером. Не стал создавать новую тему.
Есть свежеиспечённая функция:
Code
function GetStrSize(S: PAnsiChar): integer; assembler;
asm
push ecx
xor ecx, ecx {Обнуляем ecx. Чтоб не было ошибок}
@_a:
mov bl, byte ptr [ecx+eax] {Загружаем следующий символ}
or bl, 0h {Проверяем. Есть ли еще буквы?}
je @_c {Если нет, то на выход}
inc cx {Если есть. Увеличиваем cx на один}
jmp @_a
@_c:
mov eax, ecx {Записываем результат}
pop ecx
end;
Как из названия видно. Она для получения размера строки.
Так вот не получается вывести результат. Т.е не совсем получается....
Code
MessageBox(0, PChar(IntToStr(GetStrSize('Fuck'))), nil, 0);
Результат отлично выведется. Будет 4.
А если так: Code
Edit1.Text:=(IntToStr(GetStrSize('Fuck')));
То ноль эмоций. Ничего не происходит. Почему? И как исправить?