gpt4 book ai didi

c - 包含与 C 代码内联的汇编如何工作?

转载 作者:太空狗 更新时间:2023-10-29 16:32:11 26 4
gpt4 key购买 nike

我看过 Arduino 和其他硬件的代码,这些硬件使用 C 进行内联汇编,大致如下:

asm("movl %ecx %eax"); /* moves the contents of ecx to eax */
__asm__("movb %bh (%eax)"); /*moves the byte from bh to the memory pointed by eax */

这实际上是如何工作的?我知道每个编译器都是不同的,但是这样做的常见原因是什么?有人如何利用它?

最佳答案

内联汇编程序代码直接进入完整的汇编代码,原封不动地成为一个整体。当您确实需要绝对完全控制您的指令序列时,或者当您无法让优化器处理您的代码时,您可以这样做。也许你需要每一个时钟滴答声。也许您需要代码的每个分支都采用完全相同的时钟滴答数,并且您使用 NOP 填充来实现这一点。

无论如何,有人可能想要这样做的原因有很多,但您确实需要知道自己在做什么。这些代码块对您的编译器来说是非常不透明的,如果您做错了什么,您可能不会收到任何警告。

关于c - 包含与 C 代码内联的汇编如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24128905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com