当汇编遇上类...
iame 2001-08-29 05:01:26 在asm..end中不能引用类变量,如下
TPort=class
private
port:word;
public
procedure WriteByte(b:byte);
...
procedure TPort.WriteByte(b:byte);
begin
asm
mov dx,port
mov al,c
out dx,al
end;
end;
在WriteByte方法的实现中,虽然编译没有报错,但运行毫无反应!
如果改为如下就可以了:
procedure TPort.WriteByte(b:byte);
var
tempPort:word;
begin
tempPort:=port;
asm
mov dx,tempPort
mov al,c
out dx,al
end;
end;
这是Delphi的缺陷?还是ASM中不能引用类变量?还是要有特别的编译命令?