inline-assembly

    1热度

    1回答

    对于使用内联汇编块对数组进行排序的c代码,存在问题。 我完整的代码是这样的: #include <stdio.h> #define n 20 int main() { int array[n]; int i; int swapped; printf("Enter the elements one by one \n"); for (i =

    0热度

    2回答

    我已经写了下面的汇编代码来将字符串从小写字母转换为大写字母,它并不完全工作,因为我无法访问字符串的地址, m转换。这段代码不工作为什么? #include<stdio.h> int convert(char *str) { char *ptr; __asm__ __volatile__ ("movl (%1),%%ebx;" "subl

    0热度

    1回答

    我正在为AVR编写一个RPC库,并且需要将函数地址传递给某些内联汇编程序代码,并从汇编程序代码中调用该函数。但是,当我尝试直接调用该函数时,汇编程序抱怨。 这个小例子说明TEST.CPP问题(在我传递ARGS的实际情况和功能模板类的静态成员的一个实例): void bar() { return; } void foo() { asm volatile ( "ca

    0热度

    1回答

    我开始之前,这里所说的运行@ RING0(内核模式)的所有代码 - OSX 10.9: 以下功能崩溃: UINT64 GetGdtBase() { UINT64 gdt = 0; asm("sgdt %0\n" ::"m"(gdt)); return gdt >> 16; } 以下功能FINE运行: UINT64 GetGdtBase(UINT64* resu

    4热度

    1回答

    假设我有一个Delphi函数是这样的: procedure sortArray(arr: array of DWORD); register; asm //access array here end; 我将如何访问内联汇编阵列中的特定元素?我已经知道arr实际上由两个参数组成:一个指向数组的指针和它的High(),但我需要确切知道它是如何工作的。我假设指针将在eax中,而ebx中

    4热度

    1回答

    我写了这个功能,圆单打整数: function Round(const Val: Single): Integer; begin asm cvtss2si eax,Val mov Result,eax end; end; 它的工作原理,但我需要改变舍入模式。显然,根据this,我需要设置MXCSR寄存器。 如何在Delphi中执行此操作? 我这样做的

    1热度

    1回答

    下面是设置:我正在使用LLVM,并且我有一个分析过程,需要将分析的某些结果提供给以后使用。这些结果需要在我生成的最终.s文件(ARM体系结构)中可见。然后,我在.s文件上运行一些脚本,这些脚本会使用这些结果进行进一步分析,但也取决于生成的ASM的实际结构(否则,我只会使用更多的LLVM传递)。 最初我以为元数据是我想要的,我创建了一些简单的测试函数来为我关心的每个指令插入一些元数据。但我不知道如何

    0热度

    1回答

    我有一个C代码,其中主tak是用Assembly编写的。程序的想法是,例如当x = abc def时,y = a删除至少有一个字母相同的单词,并写入没有相同字母的单词,因此它会写入def。我已经wrotten的码,但它给错误等: prog.c中:10:错误:没有这样的指令:`ADDL $ 112%ESP” prog.c中:12:错误:没有这样的指令:'xorl%eax,%eax' prog.c:1

    3热度

    1回答

    假定以下功能: void asmFunction(const int *first, ...) { __asm { xor eax, eax add eax, [first][0] ; ... } } 它被称为是这样的: int first[] = { 0, 0, 0, 0, 0, 0, 0, 5, 7, 6, 2, 4, 3, 5 }

    0热度

    1回答

    我需要做的是,在C,我与一个gcc版本2.95.2工作: move.b #$01, $3FFFFF; ,但如果我把这个: __asm__ ("move.b #$01, $3FFFFF;"); 我得到: /cygdrive/c/NeoGeo_Development/NeoDev/tmp/main.o(.text+0x355): undefined referen ce to `$01'