好文档 - 专业文书写作范文服务资料分享网站

DSP程序设计 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

?对于嵌入的汇编指令,编译器不会进行语法检查,编程者必须确认嵌入的指令合理有效。

?使用asm指令的时候应小心不要破坏C语言的环境。如果C代码中插入跳转指令和标识符可能会引起不可预料的操作结果。能够改变块或其它影响汇编环境的指令也可能引起麻烦。

?对带asm语句的代码使用优化器时要特别小心。尽管优化器不能删除asm指令,但它可以重新安排asm指令附近的代码顺序,这样就可能会引起不期望的结果。

13.1.5 访问I/O空间?I/O空间地址声明

要在程序中访问io空间地址,必须首先用关键字“ioport”对要访问的地址进行定义。语法:ioport typeporthex_numioport

声明io空间端口变量的关键字;变量类型,可以为char, short, int或unsigned int;

typeporthex_num端口号,port后面接16进制数字。/*******************************************/ioportunsigned intport10;

/******************************************/注:声明io空间地址必须在C文件起始声明,不允许在函数中使用ioport声明io空间地址。

?I/O空间地址访问

访问用ioport关键字声明的I/O端口变量和访问一般变量没有区别。/***********************************************************/ioportunsigned intport10; /* 访问I/O端口10h的变量*/intfunc(){

...

port10 = a; /* 写a到端口10h */...

b = port10; /* 读取端口10h的值到b */...}

/***********************************************************/

I/O端口变量的使用不仅仅局限于赋值,和其他变量同样也可以应用于其它的表达式。

/***********************************************************/call (port10); a = port10 + b;

/* read port 10h and pass to call *//* read port 10h, add b, assign to a */

port10 += a; /* read port 10h, add a, write to port 10h *//***********************************************************/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

程序中访问的任何一个IO地址都必须在C语言程序起始处用ioport关键字声明!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

DSP程序设计 - 图文

?对于嵌入的汇编指令,编译器不会进行语法检查,编程者必须确认嵌入的指令合理有效。?使用asm指令的时候应小心不要破坏C语言的环境。如果C代码中插入跳转指令和标识符可能会引起不可预料的操作结果。能够改变块或其它影响汇编环境的指令也可能引起麻烦。?对带asm语句的代码使用优化器时要特别小心。尽管优化器不能删除asm指令,但它可以重新安排asm指令附近的代码顺序,这样就
推荐度:
点击下载文档文档为doc格式
72sm95ku8f4mu7526k929d31q9p6am00ebj
领取福利

微信扫码领取福利

微信扫码分享