错误:未知使用没有大小后缀的指令助记符

2023-12-08

这里是完整的源代码

void asmFunction() {
    unsigned char threshold[16];
    initArray(threshold, 75-128, 16);
    unsigned char counterC2[16];
    initArray(counterC2, 128, 16);
    unsigned char buffer[SIZE];

    FILE *fp;
    fp = fopen(FILE_INPUT, "rb");
    FILE *foutput;
    foutput = fopen(FILE_OUTPUT_ASM, "wb");

    fread(buffer, sizeof(unsigned char), SIZE, fp);
    fclose(fp);
    __asm__(

            "mov $65536, %%edx\n"
            "mov %[thr], %%eax\n" // <--- this line
            "mov %[buf], %%ebx\n"
            "mov %[cc2], %%ecx\n"
            "movdqu (%%ecx), %%xmm2;\n"
            "movdqu (%%eax), %%xmm0;\n"
            "loop: movdqu (%%ebx), %%xmm1;\n"
            "psubb %%xmm2, %%xmm1;\n"
            "pcmpgtb %%xmm0, %%xmm1;\n"
            "movdqu %%xmm1, (%%ebx);\n"
            "add $16, %%ebx;\n"
            "sub $1, %%edx;\n"
            "mov $0, %%esi;\n"
            "cmp %%edx, %%esi;\n"
            "jnz loop;\n"
            : "=m" (buffer) // Output
            : [thr]"r" (threshold), [buf]"r" (buffer), [cc2]"r" (counterC2)
            : "xmm0", "eax", "ebx", "ecx"
        );

    fwrite(buffer, sizeof(unsigned char), SIZE, foutput);
    fclose(foutput);
}

但我收到以下错误,我不明白为什么:

不带大小后缀的指令助记符的未知用途 “mov %[thr],%%eax\n”

有人能帮我吗?


尝试更换mov by movl? at&t 和 intel 汇编语言之间有一点区别。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:未知使用没有大小后缀的指令助记符 的相关文章

  • 如何BSWAP 64位寄存器的低32位?

    我一直在寻找如何将 BSWAP 用于 64 位寄存器的低 32 位子寄存器的答案 例如 0x0123456789abcdef位于 RAX 寄存器内 我想将其更改为0x01234567efcdab89用一条指令 因为性能 所以我尝试了以下内联
  • 有没有办法将 fopen_s() 与 GCC 一起使用,或者至少创建一个 #define ?

    MSVC 编译器说fopen 已弃用 建议使用fopen s 有什么办法可以使用吗fopen s 并且仍然便携 任何想法 define 微软的 s函数是不可移植的 我通常使用等效的 C89 C99 函数并禁用弃用警告 define CRT
  • 为什么 GCC 不将 a*a*a*a*a*a 优化为 (a*a*a)*(a*a*a)?

    我正在对科学应用程序进行一些数值优化 我注意到的一件事是 GCC 会优化调用pow a 2 通过将其编译成a a 但是调用pow a 6 没有优化 实际会调用库函数pow 这大大降低了性能 相比之下 英特尔 C 编译器 http en wi
  • typeof() 表达式内的副作用

    在 GNUC C 中 您可以使用typeof expression 并且使用内部带有副作用的表达式是合法的 例如 您可以使用以下 C 代码 int x 0 typeof x y 在这种情况下 副作用被忽略 并且 x 之后仍然为零 这是有道理
  • 在64位操作系统上以32位模式和64位模式编译ioctl函数的执行有什么不同?

    我有 64 位 Enterprise SuSE 11 我有一个应用程序 它打开 HIDRAW 设备并在其上操作 ioctl 函数以从该设备获取原始信息 如下所示 struct hidraw devinfo devinfo int fd op
  • 分析 ELF 部分和符号大小的工具

    我需要一种方法来分析 ARM 的 GCC 编译器的输出文件 我正在为裸机进行编译 并且我非常关心大小 我可以用arm none eabi objdump由交叉编译器提供 但如果存在用于此任务的工具 则解析输出并不是我渴望做的事情 您知道存在
  • 从 NASM 调用 C 函数 _printf 会导致分段错误

    我一直在尝试使用 NASM 在 Mac OS 和 Windows 上学习 64 位汇编 我的代码是 extern printf section data msg db Hello World 10 0 section text global
  • 为什么我的空循环在 Intel Skylake CPU 上作为函数调用时运行速度是原来的两倍?

    我正在运行一些测试来比较 C 和 Java 并遇到了一些有趣的事情 在 main 调用的函数中 而不是在 main 本身中 运行具有优化级别 1 O1 的完全相同的基准代码 导致性能大约翻倍 我正在打印 test t 的大小 以毫无疑问地验
  • 这种对有效类型规则的使用是否严格遵守?

    C99和C11中的有效类型规则规定 没有声明类型的存储可以用任何类型写入 并且存储非字符类型的值将相应地设置存储的有效类型 抛开 INT MAX 可能小于 123456789 的事实不谈 以下代码对有效类型规则的使用是否严格符合 inclu
  • 如何检查给定调用站点的重载决策集

    如何检查重载解析集 我在多个调用站点中使用了 4 个相互竞争的函数 在一个调用站点中 我期望调用一个函数 但编译器会选择另一个函数 我不知道为什么 这不是微不足道的 为了了解发生了什么 我正在使用enable if disable if打开
  • “mov (%ebx,%eax,4),%eax”如何工作? [复制]

    这个问题在这里已经有答案了 一直在从事装配作业 并且在很大程度上我对装配非常了解 或者至少对于这项任务来说足够好 但这个 mov 的声明让我很困惑 如果有人能解释这个 mov 语句如何操作寄存器值 我将非常感激 mov ebx eax 4
  • 阴影空间示例

    EDIT 我接受了下面的答案 并添加了我自己的代码的最终修订版 希望它向人们展示影子空间分配的实际示例 而不是更多的文字 编辑 2 我还设法在 YouTube 视频 所有内容 的注释中找到了一个调用约定 PDF 的链接 其中有一些关于 Li
  • INT_MIN % -1 是否会产生未定义的行为?

    gcc 生成浮动代码 引发SIGFPE对于以下代码 include
  • 无法执行'x86_64-conda_cos6-linux-gnu-gcc':没有这样的文件或目录(pysam安装)

    我正在尝试安装 pysam 执行后 python path to pysam master setup py build 这个错误的产生是 unable to execute x86 64 conda cos6 linux gnu gcc
  • 编译器如何实现位域运算?

    当询问如何做的问题时包裹 N 位有符号减法 https stackoverflow com questions 8309538 integer subtraction with wrap around for n bits我得到了以下答案
  • C99 中数组的静态大小[重复]

    这个问题在这里已经有答案了 一个非常简单的 C 程序 include
  • 包括带有大量全局变量的 C 头文件

    我有一个包含 100 多个全局变量的包含文件 它正在库中使用 但我链接库的一些程序也需要访问全局变量 它的构建方式 In one library c file define Extern In the programs that use t
  • 错误 LNK2019:函数 main 中引用的外部符号无法解析

    我正在尝试在 C 中运行我的简单汇编代码 我只有两个文件 cpp 文件和 asm 文件 编译时出现错误 见下文 如果有人可以提供帮助 我将不胜感激 这是我的 main cpp 文件 include
  • 为什么X86中没有NAND、NOR和XNOR指令?

    它们是您可以在计算机上执行的最简单的 指令 之一 它们是我亲自实施的第一个指令 执行 NOT AND x y 会使执行时间和依赖链长度和代码大小加倍 BMI1 引入了 andnot 这是一个有意义的补充 是一个独特的操作 为什么不是这个问题
  • GCC 5 及更高版本中的 AVX2 支持

    我编写了以下类 T 来加速操作 使用 AVX2 的 字符集 然后我发现它不起作用 gcc 5 及更高版本当我使用 O3 时 谁能帮我追踪到一些编程结构 已知不适用于最新的编译器 系统 该代码的工作原理 底层结构 bits 是一个 256 字

随机推荐

  • 如何在iOS上使用CSS溢出来获取滚动条

    开发一个 iPad 网站我尝试使用 CSS 属性overflow auto如果需要的话获取滚动条div 但即使两根手指滚动正常 我的设备也拒绝显示它们 我尝试过 overflow auto and overflow scroll 结果是一样
  • 文件 Uri 方案和相关文件

    假设 uri 的方案是 文件 还假设路径以 开头 示例路径是 bashrc Fulluri 看起来怎么样 file bashrc 对我来说似乎很奇怪 简而言之 文件 URL 的形式如下 file localhost absolute pat
  • AWS EC2 tomcat 权限被拒绝创建/写入文件

    我有一个在弹性beanstalk EC2上运行的tomcat 64 位 Amazon Linux 2015 09 v2 0 4 运行 Tomcat 8 Java 8 当网络应用程序想要创建新的目录 文件时 我遇到了麻烦 我在 catalin
  • Javascript RegExp 可以做到部分不区分大小写吗?

    我想知道 Javascript RegExp 是否能够在正则表达式本身中打开和关闭不区分大小写 我知道您可以为整个正则表达式设置修饰符 但这不是我要讨论的内容 例如 我的搜索字符串可能是 teXT To seArcH TOP SECRET
  • 不使用 WMI 查找 USB 驱动器的序列号

    在 C 中 如何在不使用 WMI 的情况下查找 USB 驱动器的序列号 Thanks 如果您可以使用 WMI 以下链接看起来是一个不错的起点 使用 C 获取易失性 USB 序列号 您可以实现 WMI 解决方案 因为这看起来是非常简单的代码并
  • Java中带时间戳的数字签名

    我在使用可信时间戳通过 Bouncy Castle 创建有效的 CMS 签名时遇到问题 签名创建效果很好 我想将签名包含到 PDF 文件中 签名有效 但是 在我将可信时间戳添加到签名的未签名属性表中后 签名仍然有效 但读者报告说签名包含嵌入
  • R中的实时自动递增ggplot

    这个线程回答如何在 R 中创建具有实时效果的增量图 我想做同样的事情ggplot2而不是 R 的碱基plot 直接从该链接中的答案复制 我尝试了这个 但它不起作用 n 1000 df data frame time 1 n y runif
  • 工作单元中的多个通用存储库?

    假设我有 2 张桌子 ProductCategory and Product 我有 1 个可以处理两个表的通用存储库 public class GenericRepository
  • 具有不同边缘值的 Networkx Spring 布局

    我是 Networkx 的新手 试图弄清楚如何使用 spring 布局 但在节点之间应用不同的边缘值 即节点之间的不同距离 而不是相同的边缘值 本质上 我想要一个图表 尝试维持一组预定义的节点到节点距离 可能使用弹簧布局来找到一些局部最小值
  • 在vba中获取2个日期之间的所有日期

    我是 vba 的新手 我试图获取 2 个日期之间的所有日期 例如我将使用参数 01 01 2015 和 15 01 2015 调用该函数 并且我将返回一个数组包含所有可能的日期 即 01 01 2015 02 01 2015 03 01 2
  • 有没有办法确定顶部的像素?

    我需要更多的解释 但欢迎举例 我试图做到这一点 以便当我向下滚动时 屏幕上的特定元素会在滚动时淡入 唯一的问题是我需要一种方法来使用提供的代码 或更好的方法 来确定元素距离顶部有多远 有没有一种不同的方法可以使滚动效果发挥作用 而不必将其基
  • 如何使用 C# 和 ClosedXML 将新行追加到 Excel 文件?

    我应该向现有 Excel 文件追加一个新行 任务由两部分组成 添加到不存在的文件 效果很好 添加到现有文件 不起作用 它不会创建新记录 仅显示 else 正文中的旧记录 这是我的代码 private static void ExportTo
  • .htaccess URL 重写问题(脚本无法加载)

    我遇到 htaccess 中的 URL 重写问题 这是我的重写代码 RewriteEngine on RewriteBase RewriteRule terms terms php L nc RewriteRule formgate a z
  • 右键单击量角器

    我正在尝试使用量角器右键单击一个元素 该元素是农业网格中的一个单元格 我正在尝试使用我能找到的一些早期建议 唯一没有给我带来错误的建议如下 browser actions mouseMove elementVar perform brows
  • iframe 中的后退按钮(类似 iGoogle 的门户小部件)

    我正在尝试创建一个小部件 基本上是一个 iframe 它有自己的后退和前进按钮 也就是说 当我点击小部件后退按钮时 只有 iframe 返回 而不是整个小部件容器 类似 iGoogle 的门户 我添加了以下链接 a class button
  • 在扩展器中更新 Knockout js Observable 时如何保留光标位置

    目标是在用户输入时将其转换为大写 我正在使用以下扩展器 ko extenders uppercase function target option target subscribe function newValue target newV
  • Ninject UnitOf Work 混乱

    我一直在 MVC 3 应用程序中使用 Ninject 但我正在尝试更改数据对象的模式以使用 UnitOfWork 但我无法弄清楚如何让 Ninject 正确处理此问题 我知道当我在控制台应用程序中手动构建类时 我的类实现会起作用 IData
  • 删除按钮的边框

    我尝试创建按钮并插入我自己的图像而不是标准按钮图像 但是 标准按钮的灰色边框仍然保留 显示在我的黑色按钮图像的外部 有谁知道如何从按钮上删除这个灰色边框 所以它只是图像本身 谢谢 Add padding 0 border none back
  • 允许在 Google Apps 脚本上上传多个文件

    Question 如何更改此脚本以允许上传多个文件甚至大于 5 MB 的文件 当前脚本
  • 错误:未知使用没有大小后缀的指令助记符

    这里是完整的源代码 void asmFunction unsigned char threshold 16 initArray threshold 75 128 16 unsigned char counterC2 16 initArray