• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C51为什么要嵌套汇编?

7d817003c282daa5 2019-03-10 浏览量:1131
是不是c语言有处理的东西有不方便的?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 1、汇编是面向硬件的语言,其能精确的控制硬件。

    比如一个延时函数,你用C写和用汇编写,使用优化等级不一样,C的延时时间是不一样的。但是汇编就是可以避免这个问题

    2、效率高,有的程序需要高效运行,

    比如RTOS的任务切换,这个用汇编来写,效率就十分高。有效的降低OS系统的开销,常见的UCOS的任务切换就是用汇编写的。

    3、早期的时候,汇编是主流,现在汇编很少用,除了学校教学外,真的很少用。

    建议了解即可,熟练的掌握C语言才是


    • 发布于 2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:20
  • 51很少嵌套汇编,有时为了处理内存,特殊寄存器,精确执行等会用到
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 1
    • 0

  • 因为汇编是最接近机器语言的编程语言

    C语言中嵌套汇编很常见,比如精确延时  使用 _nop_()就是一个很好的例子

    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 1
    • 0

  • 比如短延时,c语言太慢,只能用汇编嵌套,比如nop指令
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 51单片机的资源有限,想要代码精简或者想要获得精确的延时,都要用到汇编。
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 最初嵌套的多,现在少了,那时候汇编还没有被舍弃,现在越来越少人用汇编了
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 51的主频比32的慢,那汇编的速度和效率就比C明显了。STM32就用的少,或基本不用了。
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 主要是速度效率问题,特别是具体处理速度效率问题,汇编的可以人工定制优化。
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以不用嵌套,但是有些人会汇编,习惯性的就会嵌套汇编语言。
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 不光51几乎所有的单片机都会出现嵌套汇编的情况出现,很多特殊指令C是不支持的,只能汇编,还有部分是为了提高速度,特别是使用频率特别高又有速度要求的地方。
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 比如用NOP进行延时,比如需要高效率的函数,都可以用嵌套汇编
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先就是像上面各位大佬所说的一样,是为了提高效率,毕竟汇编是最接近机器语言的语言,

    其次,我曾经也用着这种嵌套编程,当时是这么一种情况,K发生时,就执行K0的程序(这个是一个很耗时的程序,可以看成是一个死循环),当K再次发生时,就要执行K1,无论K0是否执行完,但是也不懂得如何修改,最后就用汇编直接PUSH POP对栈直接操作了。

    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 确实是这样,汇编运行效率更高,每句代码的执行时间可推测,可以用来延时(nop)
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 汇编接近底层,执行效率比其他语言要高
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • C51里面,汇编语言跟C语言可以互相调用,这我都试验过的,C调用汇编,汇编调用C!!!要这么做的话,汇编语言必须严格遵守Keil的格式,需要加入很多控制语句,一点都不能省
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 为了提高代码的执行效率,还有一些是为了特定的命令的调用
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 有些很简单的操作,如翻转IO这种,用汇编一句也能搞定的,可以不用C语言,这样提高效率
    • 发布于2019-03-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为汇编执行的效率高,实际上,C语言编译后也形成了机器语句,但是对于复杂的C语句,编译后会更加复杂,导致执行效率低下。所以在一些对实时性要求高的场合,需要嵌入汇编来提高效率。
    • 发布于2019-03-12
    • 举报
    • 评论 0
    • 0
    • 0

  • 为了提高代码执行效率啊,不仅是C51可以嵌入汇编,ARM也可以嵌入汇编,只要你能掌握寄存器的用法。

    • 发布于2019-03-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 汇编特点就是执行效率高,部分程序代码里内嵌汇编,可能是该部分功能对效率有要求,或者延时有要求。
    • 发布于2019-03-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 有些操作c语言不好操作时或者更操作不了时就使用汇编,汇编执行效率高,有时候C语言要都一大圈才能达到自己想要的效果,汇编一句话就搞定了。
    • 发布于2019-03-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C51为什么要嵌套汇编?