辅导C读写PLC程序、辅导C程序、辅导国外C语言

- 首页 >> C/C++编程

1.int main()  

2.{  

3. void iowrite(short int port1,unsigned long value);  

4. unsigned long int ioread(short int port);  

5. short int Config_Add=0xcf8;  

6. short int Config_Dat=0xcfc;  

7. unsigned long int bus=0x00,dev=0x00;  

8. int fun=0x00,reg=0x00;  

9. unsigned long dat;  

10. for(reg=0;reg<0x40;reg++){      

11. iowrite(Config_Add,(0x80000000 |(bus<<16) |(dev<<11) |(fun<<8) |(reg<<2)));  

12. dat=ioread(Config_Dat);  

13. printf("%8.8lx",dat);  

14. printf(" ");  

15. if((reg+1)%4==0){printf("\n");}  

16. }  

17. return 0;  

18. }  

19.  

20.unsigned long ioread(short int port)    

21.{    

22.    unsigned long valueRet;    

23.    asm mov dx, port;    

24.    asm lea bx, valueRet;    

25.    __emit__(    

26.    0x66,0x50,      

27.    0x66,0xED,      

28.    0x66,0x89,0x07,  

29.    0x66,0x58);      

30.    return valueRet;    

31.}    

32.  

33.void iowrite(short int port1, unsigned long value)    

34.{    

35.    asm mov dx, port1;    

36.    asm lea bx, value;    

37.    __emit__(    

38.    0x66,0x50,      

39.    0x66,0x8B,0x07,  

40.    0x66,0xEF,        

41.    0x66,0x58);      

42.    return;    

43.}  


站长地图