inline-assembly 相关问题

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

内联汇编中的vpcmpeqb

当前,我正在尝试从使用NASM过渡到在c语言中使用内联汇编,因为这将使将来的链接变得更加容易(尤其是内联)。但是,我无法获取矢量...

回答 1 投票 0

[OFFSET关键字以大字打印数字

我使用MSVC内联汇编编写了代码,其中我通过使用offset的printf打印char数组。它工作正常。 #include 使用命名空间std; char FORMAT [] =“%s%s%s%s,%s \ n”; char ...

回答 1 投票 2

将C数组设置为嵌入式asm的新调用堆栈(ESP)?

正如我的标题所暗示的,我很感兴趣是否有可能分配一个C数组,并通过相应地将ESP寄存器指向它来使其表现得像堆栈。一些代码示例... void foo(){...

回答 1 投票 1

使用新的CPU指令支持构建向后兼容的二进制文件

实现同一功能的多个版本的最佳方法是使用特定的CPU指令(如果在运行时进行了测试,或者如果没有则退回到较慢的实现?对于...

回答 1 投票 2

使用x86汇编程序c ++中的数组的访问冲突写入位置错误

我正在尝试使用x86更新数组中的特定索引。我从Visual Studio的“访问冲突写入位置...”错误中获取以下错误:mov [ebx + ecx],eax。我该如何解决...

回答 1 投票 0

gcc臂在系统调用之前优化了参数

我正在尝试使用gcc arm在arm7tdmi-s上实现一些“ OSEK服务”。不幸的是,提高优化级别会导致“错误”的代码生成。我不明白的主要是...

回答 1 投票 1

解码为机器语言后,指令重复两次,

我基本上是学习如何在X86体系结构中编写自己的指令,但是要做到这一点,我正在理解如何通过示例将它们解码和解释为低级语言...

回答 1 投票 0

将值从x86寄存器复制到指针指定的存储位置

假设我有一个要复制数据的内存位置,并且该地址在指针中,是否可以通过MOV指令和内联汇编在该位置复制数据。或者基本上是...]] >>

回答 1 投票 0

早期分类和命名寄存器

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

© www.soinside.com 2019 - 2024. All rights reserved.