完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
51很少嵌套汇编,有时为了处理内存,特殊寄存器,精确执行等会用到
|
|
|
|
|
|
|
|
|
|
|
|
比如短延时,c语言太慢,只能用汇编嵌套,比如nop指令
|
|
|
|
|
|
51单片机的资源有限,想要代码精简或者想要获得精确的延时,都要用到汇编。
|
|
|
|
|
|
最初嵌套的多,现在少了,那时候汇编还没有被舍弃,现在越来越少人用汇编了
|
|
|
|
|
|
51的主频比32的慢,那汇编的速度和效率就比C明显了。STM32就用的少,或基本不用了。
|
|
|
|
|
|
主要是速度效率问题,特别是具体处理速度效率问题,汇编的可以人工定制优化。
|
|
|
|
|
|
云汉达人
1、汇编是面向硬件的语言,其能精确的控制硬件。 比如一个延时函数,你用C写和用汇编写,使用优化等级不一样,C的延时时间是不一样的。但是汇编就是可以避免这个问题 2、效率高,有的程序需要高效运行, 比如RTOS的任务切换,这个用汇编来写,效率就十分高。有效的降低OS系统的开销,常见的UCOS的任务切换就是用汇编写的。 3、早期的时候,汇编是主流,现在汇编很少用,除了学校教学外,真的很少用。 建议了解即可,熟练的掌握C语言才是 |
|
|
|
|
|
可以不用嵌套,但是有些人会汇编,习惯性的就会嵌套汇编语言。
|
|
|
|
|
|
不光51几乎所有的单片机都会出现嵌套汇编的情况出现,很多特殊指令C是不支持的,只能汇编,还有部分是为了提高速度,特别是使用频率特别高又有速度要求的地方。
|
|
|
|
|
|
比如用NOP进行延时,比如需要高效率的函数,都可以用嵌套汇编
|
|
|
|
|
|
首先就是像上面各位大佬所说的一样,是为了提高效率,毕竟汇编是最接近机器语言的语言,
其次,我曾经也用着这种嵌套编程,当时是这么一种情况,K发生时,就执行K0的程序(这个是一个很耗时的程序,可以看成是一个死循环),当K再次发生时,就要执行K1,无论K0是否执行完,但是也不懂得如何修改,最后就用汇编直接PUSH POP对栈直接操作了。 |
|
|
|
|
|
确实是这样,汇编运行效率更高,每句代码的执行时间可推测,可以用来延时(nop)
|
|
|
|
|
|
汇编接近底层,执行效率比其他语言要高
|
|
|
|
|
|
C51里面,汇编语言跟C语言可以互相调用,这我都试验过的,C调用汇编,汇编调用C!!!要这么做的话,汇编语言必须严格遵守Keil的格式,需要加入很多控制语句,一点都不能省
|
|
|
|
|
|
为了提高代码的执行效率,还有一些是为了特定的命令的调用
|
|
|
|
|
|
有些很简单的操作,如翻转IO这种,用汇编一句也能搞定的,可以不用C语言,这样提高效率
|
|
|
|
|
|
因为汇编执行的效率高,实际上,C语言编译后也形成了机器语句,但是对于复杂的C语句,编译后会更加复杂,导致执行效率低下。所以在一些对实时性要求高的场合,需要嵌入汇编来提高效率。
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1018 浏览 1 评论
1849 浏览 0 评论
1830 浏览 1 评论
3254 浏览 5 评论
3581 浏览 9 评论
1020浏览 1评论
1849浏览 1评论
如何知道嵌入式电子控制单元 (ECU) 中的RAM使用情况?
1359浏览 1评论
1851浏览 0评论
1177浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:23 , Processed in 0.915465 second(s), Total 78, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
561