inline-assembly 相关问题

嵌入在另一个更高语言的源中的程序集,例如嵌入在C或C ++中的x86程序集。

早期分类和命名寄存器

我试图了解“早期消息输出”的用法,但偶然发现了一个让我感到困惑的小片段。考虑下面的乘模函数:静态嵌入式uint64_t mulmod64(...] >>

回答 1 投票 2

__ asm __volatile如何执行?

gcc_inline void lcr0(uint32_t val){__asm __volatile(“ mov%%0,%% cr0”::“ r”(val));在上面的代码中,我不确定val插入汇编字符串的位置。 val是否替换...

回答 1 投票 -3

x86中未使用或使用最少的MOV指令,可用于自定义MOV扩展名

我正在用gem5模拟器在X86架构中对自定义MOV指令进行建模,以测试其在模拟器上的实现,我需要使用内联汇编来编译自己的C代码以创建二进制文件...

回答 1 投票 0

如何从ioremap()地址加载avx-512 zmm寄存器?

我的目标是创建一个具有超过64b有效负载的PCIe事务。为此,我需要读取一个ioremap()地址。对于128b和256b,我可以分别使用xmm和ymm寄存器,它们的作用类似于...

回答 1 投票 0

为什么添加内联汇编注释会导致GCC生成的代码发生这种根本性变化?

所以,我有这段代码:constexpr unsigned N = 1000; void f1(char * sum,char * a,char * b){for(int i = 0; i

回答 4 投票 81

在c ++中,我们可以通过volatile +内存栅栏(sfence + fence)保证两个线程之间发生事前吗?

简而言之,可以使用以下代码将src中存储的数据正确复制到dst吗? volatile bool标志= false; //在线程A中。memset(mid,src,size); __asm__ __volatile __(“ sfence” :::“ ...

回答 2 投票 1

Clang 11和GCC 8 O2中断直插式装配

我有一小段代码,有些内联汇编在O0中正确打印argv [0],但在O2中不打印任何内容(另一方面,当使用Clang时,GCC打印存储在..中的字符串。 。

回答 1 投票 1

Asm代码说明

以下GCC内联汇编来自LuaJit的coco库。有人可以逐行说明其功能吗?静态内联无效coco_switch(coco_ctx从,coco_ctx到){...

回答 2 投票 6

使用GCC内联汇编获取Linux syscall的返回值

以下宏可以执行lstat系统调用。 #include #define m_lstat(PATH,FS){\ long _rax = 6; / * sys_newlstat * / \ uint8_t * _path = ...

回答 2 投票 2

内联汇编printf将整数解释为地址

我正在尝试通过内联汇编进行阵列打印。 Printf函数将栈中的值解释为需要打印的地址,并导致错误(截图:https:// ...

回答 1 投票 0

使用内联汇编时出现段故障(堆芯故障)错误

我在GCC中使用内联汇编。我想将变量内容向左旋转2位(我将变量移至rax寄存器,然后将其旋转2次)。我写了下面的代码,但是我遇到了...

回答 1 投票 -1

如何在Visual Studio的内联汇编中获取变量的地址

我正在Visual Studio环境中学习内联汇编程序。因此,我正在实现一个简单的点积函数,但似乎无法找到返回浮点结果的正确方法。浮点(vec3&a,...

回答 1 投票 0

有没有一种方法可以防止编译器弄乱内联汇编

所以我有这段“哑巴”的混合C代码和ARM汇编int main(int argc,char ** argv){register int val asm(“ r0”);注册volatile int dummy asm(“ r2”);注册int res asm(“ r3” ...

回答 2 投票 1

困惑如何在汇编代码中访问C ++变量

[接受关于装配的课程,所有编程均在Visual Studio中使用_asm命令完成。这是我正在处理的作业的模板:void main(){const unsigned char ...

回答 1 投票 0

如何在sdcc内联汇编中推送变量?

我在ThreadCreate()中有以下代码:int tmpPSW = newThID << 3; __asm PUSH A _tmpPSW __endasm;结果是:?ASlink-Warning-Undefined全局'_tmpPSW'由模块'...

回答 1 投票 0

为什么nop不占用一个时钟周期

我写了一个基本代码来找出nop占用的时钟周期数。我们知道nop需要一个时钟周期。 #include #include #include int main(...

回答 1 投票 1

当我们将“ cc”添加到发布者列表时,程序集输出中会发生什么

我读过,如果我们在问题清单中指定“ cc”,则表明汇编代码修改了标志寄存器。写了一个示例程序,以检查添加“ cc”与不添加之间的区别。 ...

回答 1 投票 0

内联汇编中匹配约束的用法是什么

通过以下链接,https://www.ibm.com/developerworks/library/l-ia/index.html,单个变量既可以用作输入操作数,也可以用作输出操作数。我编写了以下代码:#include

回答 2 投票 1

GCC x86_64 asm中的寄存器分配冲突。生命周期被忽略

我有一个包含一个小的汇编块的函数。由GCC编译的该函数的汇编不正确,因为它将同一寄存器分配给两个不同的变量。这是函数...

回答 1 投票 0

除非使用某些寄存器,否则函数钩子会崩溃

因此,我正在尝试为游戏添加功能,但是存在一个小问题。如果诸如eax,ebx,ecx和edx之类的寄存器是可互换的,那么下面的第一个代码示例将如何导致游戏崩溃...

回答 2 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.