义隆单片机C语言中调用汇编 这几条如何读解?(祥细)谢谢!

义隆单片机C语言中调用汇编 这几条如何读解?(祥细)谢谢!,第1张

这个是一种宏定义,

比如第一条:#define

disi()

_asm{disi}

//禁止总中断

在后续的c语言代码中,如果遇到disi()字符串,编译器会先将其替换为

_asm{disi}

而_asm{}

表示执行大括号内的汇编代码。

例如:

程序代码(示例无实际意义)为:

........

a

=

b

+

c

disi()

b

=

a

+

c

编译器会将其变为:

.......

a

=

b

+

c

_asm

{

disi

}

b

=

a

+

c

.........

然后再进行编译!

_asm

{

disi

}

表示禁止总中断。

程序没有错

软件BUG太多

一种情况:

新建工程

把代码重新粘贴进去

再次编译就不会出错

二种情况:

找到变量分配的存储控件,看看是不是使用了不该使用的内存地址

使用C写程序时必须指定变量的存储空间,否则你很容易就把自己玩死了

第一块是声明汇编函数,就可以在接下来的C程序中直接调用这些汇编函数来进行底层硬件 *** 作了。

第二块声明是为引脚命名。R65,R44这些东西,意义并不明确,为了方便编程,为它们命名一些能够清楚反映它们功能的名字。

第三块是声明了一些 *** 作。像P6CR|=0x01,就是一个将P6CR的最低位置一的 *** 作,具体这些 *** 作有何意义需要查你的数据手册,去看看这些引脚或者寄存器每一位的意义是什么。

最后一块不是声明,是定义变量,还是一类比较特殊的变量,只有一个比特。一般是在嵌入式程序编写中作辅助标志用的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12193212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存