问题标签 [inline-assembly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - x86 内联汇编器标志
愚蠢的问题,但我只是在 gcc 中找不到必要的标志。基本上,我的 C 程序中有以下内联汇编代码
编译时,我收到一条错误消息,上面写着:Error: invalid char '[' beginning operand 2
[timings]'`
现在我记得很久以前我使用某种标志告诉编译器它是 x86 内联汇编。但是在网上找不到,也许有人可以告诉我我必须使用哪个标志?
太感谢了!
c - 用于上下文切换的 gcc 内联汇编
我正在尝试使用 gcc 为 m68k 处理器实现上下文切换。我需要使用内联汇编来保存所有寄存器 d0、d1...d7 和 a0、...a7。我想知道是否可以在我的内联 gcc 中使用一个循环来保存这些寄存器,而不是为每个寄存器编写单独的代码行。
例如。
move.l %d0, temp pcb.cpuregs.d0 = temp
我想在 d0 内制作 0 ,就像循环计数器一样。
gcc - GCC的asm扩展版
我从没想过我会发布一个装配问题。:-)
在GCC中,有一个asm 函数的扩展版本。这个函数可以接受四个参数:汇编代码、输出列表、输入列表和覆盖列表。
我的问题是,覆盖列表中的寄存器是否已清零?以前在其中的值会发生什么(来自其他代码执行)。
更新:在考虑我迄今为止的答案时(谢谢!),我想补充一点,虽然寄存器列在 clobber-list 中,但它(在我的实例中)正在 pop ( popl
) 命令中使用。没有其他参考。
iphone - iphone dev : 内联 asm 的问题
我阅读了处理此类问题的不同主题,但我仍然没有答案。这是我的问题:
在我的头文件中,我有这个:
在我的项目设置中,我验证了以下这些选项是经过检查的 链接文本
但我有一个控制台错误:
{标准输入}:242:所选处理器不支持 -- smull r0,r1,r2,r3'
{standard input}:244:unshifted register required --
orr r0,r0,r1,lsl#20'
你可以帮帮我吗 ?
assembly - 在内联汇编中更快实现的简单 C 函数的示例是什么?
我很难使用内联汇编来击败我的编译器。
编译器很难真正、非常快速和简单地制作一个好的、非人为的函数示例是什么?但是用内联汇编来做这个相对简单。
c - 如何在 Visual C++ 6.0 中编写以下内联汇编代码?
我正在使用以下内联汇编的 GCC(用于 Linux/Ubuntu)中的 C 语言编写应用程序。
请原谅上面的错别字(我是凭记忆写的)。Visual C++ 6.0 中等效的内联汇编器是什么?我发现我需要移植我的代码。
c - 来自 x86_64 Linux 中的内联 asm 的系统调用?
为什么这个打印垃圾而不是优雅地退出我的程序?我在 BSD 上以这种方式使用系统调用,我想知道我需要什么才能让它在 Linux 中工作。
谢谢。
c - 让 GCC 在使用内联 asm 的整个函数中保留 SSE 寄存器
我正在用 C 编写一个程序,需要进行一些快速的数学计算。我正在使用内联 SSE 汇编指令来获取一些 SIMD 操作(使用压缩双精度浮点数)。我在 Linux 上使用 GCC 进行编译。
我处于需要循环遍历一些数据的情况,并且在计算中使用了一个常数因子。我想在循环期间将该因素隐藏在安全寄存器中,因此我不必每次都重新加载它。
用一些代码来澄清:
我试过用“注册”关键字做一些事情。但如果我没记错的话,看起来我只能保留一个指向该结构的指针(在通用寄存器中)。这将需要在每次迭代中得到尊重,浪费宝贵的时间。
我不只是想假设 GCC 不会更改 xmm1 寄存器,这太过分了“恶魔飞出鼻子”之类的事情:-)。所以我希望有一个适当的方法来做到这一点。
c - 这个 x86 内联汇编在做什么?
我遇到了这段代码,需要了解它在做什么。它似乎只是在声明两个字节然后什么都不做......
谢谢!
visual-c++ - 为什么 MSVC 不支持 AMD64 和 Itanium 目标的内联汇编?
昨天我了解到,在为 AMD64 和 Itanium 目标编译时,Microsoft Visual C++ 不支持内联汇编(带有 __asm 关键字)。
那是对的吗?如果是这样,有谁知道他们为什么不支持这些目标的内联汇编?只是放弃似乎是一个相当大的功能......