Re: Встроенный asm: запись данных в память по заданному адре
От: _Michael_V_  
Дата: 03.11.05 20:01
Оценка:
Спасибо за ответы. Похоже, оно действительно работает. Но не всегда.
exp_1: Я проверил, твой пример также себя ведет.

А именно:

Не работает (на этом я и тестировал вначале):
.....
var p:pchar;
begin
p:='ABCDEFG';
JustTest(p);
...
end;

Работает:
.....
var p:pchar;
begin
p:=nil;
reallocmem(p,8);
JustTest(p);
...
end;

И дело здесь не в ассемблере. Можно просто попытаться сделать что-то вроде p[0]:='A' внутри JustTest. Получится то же самое. Присваивание не проходит, если p задана присваиванием константы.

Я думал, что память выделяется аналогично в обоих случаях. Это не так? Если сделать p:='ABCDEF', то p станет указателем на константу что ли, и запись в нее чем-то пресекается?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.