采集数据的注释。。。

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:04:08
int in_data(void)
{ union REGS reg1;
struct SREGS sreg1;

struct com_para_struc ls; unsigned int i, *p1, *p2;

reg1.x.ax=0x0fd02;/*?是什么意思?*/
sreg1.es =FP_SEG(&ls);
reg1.x.di=FP_OFF(&ls);
int86x(0x68,®1,®1,&sreg1);

p1=&ls.speed;
p2=&com_para.speed;
for(i=0;i<37;i++)
{ *p2=(((*p1)>>12)&0x0F)*10+(((*p1)>>8)&0x0F)*1+(((*p1)>>4)&0x0F)*1000+((*p1)&0x0F)*100;
p1++; p2++; }
}
解释的详细还可以加分。。。多谢。。。
这是一个在下位机接收数据的函数,com_para是存储从下位机传输上来数据的一个结构。reg1.x.ax=0x0fd02;中0x0fd02是中断号还是什么啊?
*p2=(((*p1)>>12)&0x0F)*10+(((*p1)>>8)&0x0F)*1+(((*p1)>>4)&0x0F)*1000+((*p1)&0x0F)*100; 计算和下位机传输近来的数据有关系吗?
或许说的不清楚,麻烦了。。。谢谢
我就是想用C程序接收下位机的数据,这个函数这样可以吗?

这没写完整吧
REGS没有给出完整的结构体么。
reg1.x.ax=0x0fd02;/*?是什么意思?*/
赋值语句,把一个16进制数赋给reg1.x.ax 这个数边成10进制以后是64770
要么把代码发完整了帮你看