inline-assembly

    1热度

    1回答

    uint8_t* dataPtr; uint8x8x4_t dataVec; __asm__ __volatile__("vldmia %1, %h0" : "=w"(dataVec) : "r"(dataPtr)); 以上ARM内联汇编代码时使用GCC工具链armeabi-v7a ABI的Android NDK编译工作正常。不过,我得到以下编译器错误,当我切换到Clang error:

    2热度

    1回答

    我正在使用rdtscp指令读取ecx寄存器以检测cpu和numa节点ID(我正在开发OS)。 的代码如下所示 inline static long get(unsigned char *node_id = 0, unsigned char *cpu_id = 0) { unsigned int p; __asm__ __volatile__("rdtscp\n" : "=c"

    -1热度

    1回答

    我试图生成随机数,但这个种子 int rdtsc() { __asm__ __volatile__("rdtsc"); } 但是,当我尝试编译我得到这个错误: error C2065: '__asm__' : identificador no declarado error C2146: error de sintaxis : falta ';' delante del i

    0热度

    1回答

    我应该重写代码从C到内联汇编。代码将十进制数转换为十六进制。 代码我应该转移是: #include <stdio.h> static int a; int main() { char str[]="XX je hex\n"; if (scanf("%i", &a)==1) { /* This part of code i am supposed to transfer */

    0热度

    1回答

    这是轻量级加密PRESENT算法实现的一部分,针对速度,8位,由C实现,与通过内联汇编实现的算法的pLayer相关。 // ****************** pLayer ****************************** asm volatile("clr %0 \n" "clr %1 \n" "clr %2 \n"

    1热度

    2回答

    我想重用我的C项目中一些汇编代码的函数体。假设我有一个指令序列,我想组织他们作为一个函数: void foo() { __asm__ ( "mov %eax, %ebx" "push %eax" ... ); } 然而,一个障碍是,在功能foo编译汇编代码,除了内联汇编代码,编译器也将产生这个功能有些序幕指令,整个汇编程序将成为类似: foo:

    5热度

    1回答

    如果未定义__SHA__,我们使用内联汇编来使SHA指令可用。在GCC我们使用: GCC_INLINE __m128i GCC_INLINE_ATTRIB MM_SHA256RNDS2_EPU32(__m128i a, const __m128i b, const __m128i c) { asm ("sha256rnds2 %2, %1, %0" : "+x"(a) : "xm"(

    0热度

    1回答

    当我们在一般的C/C++ CUDA代码,例如编写内联PTX汇编: __device__ __inline__ uint32_t bfind(uint32_t val) { uint32_t ret; asm ("bfind.u32 %0, %1;" : "=r"(ret): "r"(val)); return ret; } 我们可以asm后添加volatile

    1热度

    1回答

    我想写一个简单的操作系统,使用GCC,这将允许我在我输入的显示器上显示文本。我在C中有一个中断表,我需要加载并希望能够使用内联汇编代替外部汇编语言模块。 我在寻找的是将指针传递给内联汇编的一种方法。 我试图内联的指令,需要一个存储器操作数是LIDT: 载荷将源操作数的值代入全局描述符表寄存器(GDTR)或中断描述符表寄存器(ID​​TR) 。源操作数指定包含全局描述符表(GDT)或中断描述符表(I

    0热度

    1回答

    我有下面的c汇编代码以降序对数组进行排序,我已经使用8086emu进行了测试,并且它工作了100%,但在visual studio中它给了我错误的结果和错误。任何想法或如何解决这个问题。 我的代码: - #include "stdafx.h" #include <iostream> using namespace std; void main(void) { short *arr;