好像是不行
因为当你这样写时
procedure TPort.WriteByte(b:byte);
var
tempPort:word;
begin
tempPort:=port;
asm
mov dx,tempPort
mov al,c
out dx,al
end;
end;
编译器会为你产生Self: TPort,好像是这样子
TempPort := Port
其实是
TempPort := Self.Port;
而在asm..end中则不会,我是这么认为的
如果你这样写应该行
MOV DX,[EAX + OFFSET PORT] 这是我自己瞎试的,其中EAX即为当前实例的指针
因为当你这样写时
procedure TPort.WriteByte(b:byte);
var
tempPort:word;
begin
tempPort:=port;
asm
mov dx,tempPort
mov al,c
out dx,al
end;
end;
编译器会为你产生Self: TPort,好像是这样子
TempPort := Port
其实是
TempPort := Self.Port;
而在asm..end中则不会,我是这么认为的
如果你这样写应该行
MOV DX,[EAX + OFFSET PORT] 这是我自己瞎试的,其中EAX即为当前实例的指针
解决方案 »
- delphi随机函数
- 一个程序如何同时运行两种界面??(问题内详)
- 在Fastreport下,报表在预览的时候,可以自由拉动列宽,就像EXCEL预览的时候
- 使用odac将net打为true时,连接数据库时报 Net:Invalid SID!错,如何这是什么原因啊?
- 如何控制在Edit.text输入的字符不能为'
- 操作excel的难题。
- 纺织、轻纺、棉纺ERP系统,纺织企业,计件工资
- 大虾请进,送分了!!!
- 请教和讨论: 在INTERNET环境下, MIDAS应用服务器在网络中的位置及其安全. 高手请进....
- "error loading midas.dll"如何解决?
- 用鼠标在图象上拉矩形框(如PhotoShop中有这项功能),怎么实现
- 动态建立菜单项
在看TObject的源码中发现在asm..end要这么引用类变量:[EAX].Port