在Delphi中对端口的直接操作
你可以通过以下两种方式完成对端口的操作:
(1)使用端口预定义数组
Delphi仍然保留了Turbo Pascal的两个预定义数组Port和
PortW。这两个一维数组的每个元素代表一个数据端口,它们的
端口地址同它们的下标是相对应的。下标的类型为整型字。
Port数组成员是Byte类型的,PortW数组的成员是Word类型的。
下面举例说明:
Port[$20]:=$20; {将$20写入$20端口}
PortData:=Port[$20]; {将$20端口的数据读入Byte变量
PortData}
这种操作方式在Delphi的帮助文件中没有提及,但它确实
可以很好地工作。
(2)另一种方法是采用直接嵌入汇编语言
Delphi中仍然可以像以往一样,在Turbo Pascal中使用嵌
入汇编语言。
语法如下:
asm
AssemblerStmt <Separator AssemblerStmt>
end
下面举一个用于测试的同样例子:
Var
PortData:Byte;
ASM
MOV AL,$20;
MOV DX,$20;
OUT AL,DX; {将$20写入$20端口}
MOV DX,$20;
IN AL,DX;
MOV PortData,AL; {将$20端口的数据放入Byte变量
PortData}
END;
你可以通过以下两种方式完成对端口的操作:
(1)使用端口预定义数组
Delphi仍然保留了Turbo Pascal的两个预定义数组Port和
PortW。这两个一维数组的每个元素代表一个数据端口,它们的
端口地址同它们的下标是相对应的。下标的类型为整型字。
Port数组成员是Byte类型的,PortW数组的成员是Word类型的。
下面举例说明:
Port[$20]:=$20; {将$20写入$20端口}
PortData:=Port[$20]; {将$20端口的数据读入Byte变量
PortData}
这种操作方式在Delphi的帮助文件中没有提及,但它确实
可以很好地工作。
(2)另一种方法是采用直接嵌入汇编语言
Delphi中仍然可以像以往一样,在Turbo Pascal中使用嵌
入汇编语言。
语法如下:
asm
AssemblerStmt <Separator AssemblerStmt>
end
下面举一个用于测试的同样例子:
Var
PortData:Byte;
ASM
MOV AL,$20;
MOV DX,$20;
OUT AL,DX; {将$20写入$20端口}
MOV DX,$20;
IN AL,DX;
MOV PortData,AL; {将$20端口的数据放入Byte变量
PortData}
END;
Port[$20]:=$20; {将$20写入$20端口}
我也编译不了.