在Dephi嵌入汇编语句的问题(100分)

G

gzgylgl

Unregistered / Unconfirmed
GUEST, unregistred user!
我Dephi中嵌入如下汇编语句:
asm
PUSH DS
push dx
push ax
XOR AX,AX
PUSH AX
MOV DX,2FBH
MOV DL,80H
mov pp,dl
OUT DX,AL //出错信息:Project SetCom.exe raised exception class EPrivilege with message 'Privileged instruction'.Process stopped.Use Step on continue.
MOV DX,2F8H
MOV AL,0CH
OUT DX,AL //出错信息:同上
MOV DX,2F9H
MOV AL,00
OUT DX,AL//出错信息:同上
MOV DX,2FBH
MOV AL,1BH
OUT DX,AL//出错信息:同上
MOV DX,2FCH
MOV AL,03
OUT DX,AL//出错信息:同上
MOV DX,2F9H
MOV AL,00
//OUT DX,AL//出错信息:同上
end;
以上汇编语句在masm中调试通过,并可以通讯
 
你的操作系统?
如果是NT/2000的话就不要考虑了,它不支持直接硬件端口访问。
需要使用驱动程序或者使用它自己的CreateFile、ReadFile、WriteFile来进行。
 
而且你的程序不仅在winnt/2000没戏
而且在win9x估计也要大大的修改,都是16位的代码,比如那些push都是16位的,
而且还push ds干嘛,而且没有对应的pop……
 
Windows ME +Delphi5下测试如下,所有语句完全通过(当然仅仅是执行过去,没有真正看功能与是否正确)
但是在最后的End退出时出现异常。
 
在windows下访问串口得通过设备方式。
下载一个串口通讯控件。
 
你有4个Push,却没有一个Pop,不4掉才怪呢!
 
程序没有大问题。
在WINDOWS下尽量不要使用嵌入汇编方式,
除非你要控制自己插入的硬件,比如A/D卡。
 
谢谢各位。我确实要对硬件控制。所以。。。
 
对于NT环境下,DELPHI无法实现你的功能,可以考虑用C++ Builder
 
多人接受答案了。
 
顶部