inline-assembly

    0热度

    1回答

    我有一个内联汇编代码,有两条小线。我想在第二行中使用从第一行检索的输出操作数作为输入操作数。我想知道是否有可能。这里是我的代码: asm volatile( "umull %0, %1, %3, %4; \n\t" "adds %2, %5, %0; \n\t" :"=r"(mullo2), "=r"(mulhi2), "=r"(temp)

    4热度

    1回答

    我试着写与至强融核平台KNC一些指令内联汇编代码,使用k1om-mpss-linux-gcc编译器。我想在我的代码中使用一个掩码寄存器来向量化我的计算。这是我的代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <assert.h> #include <

    0热度

    2回答

    我想通过asm内联一个分支来调用c中的外部函数。我正在编译为arm m0指令集,但它返回的是错误的表达式。 的代码是: __asm volatile ( " cmp r3,#0 \n" " b %[my_function] \n" //Call function " bx r14 \n" : //

    0热度

    2回答

    由于我的问题的标题说sleep()函数正常工作(和C函数中的每个其他函数调用,问题是它完成运行后I得到的错误如下: “运行时检查失败#0 - ESP的值未正确保存在函数调用中,这通常是调用一个函数指针调用约定的函数的结果“ 我相信我在调用睡眠函数时处理寄存器的方式是正确完成的,因为它实际上起作用了,我发布了整个函数以防万一需要在另一个函数调用中检测我可能在哪里放置栈内容。 该功能基本上打印从底部最

    0热度

    1回答

    我想解决一些内联SSE2程序集的总线错误。源代码有一个使用5个指针的宏,我怀疑其中一个没有对齐。 我在源代码行设置了一个断点。但是当我执行disass时,它会从函数的顶部反汇编,而不是调试器停止的地方。有数百条装配线,所以它对我没有什么帮助。按ENTER响应“按ENTER键继续”的响应时间为30到40次,响应速度很快。 我尝试了一个disass $pc,但是它从函数的顶部进行了dsassemble

    3热度

    1回答

    我有兴趣了解程序员如何在纯Common Common Lisp中运行(或者,在特定于实现的扩展中失败)。谷歌还没有找到我有关这方面的很多信息,所以我想听听专家们的说法。 This post提到了SBCL的一个特性来定义作者称之为“虚拟操作符”的内容,但是搜索“常见的lisp虚拟操作符”并没有产生太多的效果。作者还提到要找到有关它的文档是多么困难。对于其他实现是否存在类似的系统,标准中是否有任何基础

    5热度

    1回答

    #include <stdio.h> int main(){ __asm__ ( "result: \n\t" ".long 0 \n\t" "rdtsc \n\t" "movl %eax, %ecx\n\t" "rdtsc \n\t" "subl %ecx, %eax\n\t"

    2热度

    1回答

    我正在尝试编写一个程序来读取一个句子并计算大写字母的数量。 具体我想转换如下图所示成汇编语言的C代码: scanf("%c", &L); while(L !='\n') { if(L>='A' && L<='Z') V++; scanf("%c", &L); } 这里是我的代码进行组装: _asm { call read mov

    6热度

    2回答

    我写了一个简单的汇编程序: section .data str_out db "%d ",10,0 section .text extern printf extern exit global main main: MOV EDX, ESP MOV EAX, EDX PUSH EAX PUSH str_out CALL printf SUB ESP, 8 ; cleanu

    3热度

    3回答

    我需要处理来自旧式Mac时代(旧式Motorola CPU)的文件。字节是大端,所以我有一个功能,交换和INT64英特尔小端。该功能是ASM,适用于32位CPU,但不适用于64位。对于64位,我有一个不是ASM的功能。我想结合使用IFDEF的功能。我可以这样做吗?这会成为一个问题吗? interface function SwapInt64(Value: Int64): Int64; asse