windows 下如何直接访问寄存器

来源:百度知道 编辑:UC知道 时间:2024/06/02 12:52:57
我在windows下用borland C 写一个rs232的程序。该程序在发送每一笔数据时,第一个字节的校验位恒为“1”,后面的恒为“0”。
我采用的办法是:
设定为1校验-->发送第一个字节-->读取“线路状态寄存器”以判断“移位寄存器”是否为空-->知道判定移位寄存器为空时,再将数据格式设定为0校验,接着发送后面的数据。
但我发现,在windows下,读取的线路状态寄存器的值并不对,总是指示移位寄存器为空(实际并不为空)。
我后来得知,好像windows条件下不能直接存取寄存器的。
我想求助的是:
1.windows下如何实现直接存取寄存器
2.有什么别的办法实现“第一个字节1校验,后面的字节0校验?”
注:我比较喜欢用中断的方式来实现“

这个我还没弄过,你去查查API函数.

如果你真想用C访问寄存器建议你用存DOS,我想WINFDOWS的寄存器是受保护的.

__asm
{
}
用汇编??
我看起来是改了,不过到底是硬件的还是模拟的就不知道了。几个通用寄存器都没问题。

难道 没有 MSCOMM的现成控件来实现串口收发么?

寄存器可以用_来标注的,例如:_AX,_BX等,对不对呀?
你如果是访问的计算机的ISA总线、PCA总线,要使用inportb, outportb 等指令,不过要添加相应的库和头文件,你看一下是什么头文件啊?好像是"port.h"吧,好久没有用啦!

你可以参考下串口调试工具的源代码,在进行串口通讯的时候,是不需要直接读取寄存器的,不像单片机。

建议你参见《win32 下的汇编设计》;

支持2、4楼的说法,汇编的确是比c更接近硬件层面的语言了——不懂,刚接触汇编