首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

请问汇编关于把寄存器赋值给变量出错的有关问题

2012-05-03 
请教汇编关于把寄存器赋值给变量出错的问题用delphi写了点东西,需要把寄存器赋值给变量,运行时提示内存读

请教汇编关于把寄存器赋值给变量出错的问题
用delphi写了点东西,需要把寄存器赋值给变量,运行时提示内存读取错误不知道是错在
MOV vgwxls1,ECX
还是错在 strls:=inttostr(0)+'序号'+inttostr(longint(vgwxls));

代码例子:

var
vgwxls:dword;
strls:string;
begin
asm
CALL $1000000
MOV vgwxls,ECX
end;
//到这里不会往下走了,但是ecx,绝对有值,那个CALL $1000000,我现在只是举个例子, 我在od跟踪下来,call完,ecx有值,
strls:=inttostr(0)+'序号'+inttostr(longint(vgwxls));
Memo1.Lines.Add(strls);
end;

请各位大大指教下,问题出在哪

[解决办法]
表面看起来没问题。估计是CALL $1000000内部把某些寄存器的值改了造成的,你应该:
pushad
CALL $1000000
popad

热点排行