Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
错误:未知使用没有大小后缀的指令助记符
这里是完整的源代码 void asmFunction unsigned char threshold 16 initArray threshold 75 128 16 unsigned char counterC2 16 initArray
gcc
x8664
inlineassembly
att
在 C 函数调用之前在内联汇编中推送额外的参数是否以任何方式(跨编译器、平台、libc 实现等)安全或可移植?
我写了一个函数来漂亮地打印数独 当然这个模式可以通过一些循环生成 但我不想经历麻烦 所以这就是我想出的 前 5 个格式说明符只是 printf 的参数 本身被推入堆栈 并且在回车后将被覆盖 虽然 它可以在我的机器上运行 但我想知道这是否可以
c
Assembly
gcc
x8664
inlineassembly
在汇编中实现正则表达式“[ab][^r]+r]”的匹配器
我的汇编代码需要帮助 我需要使用编写代码来找到适合我的正则表达式的范围 我的正则表达式 ab r r 所以首先我寻找是否有 a 或 b 并跳转到 开始 部分 现在我有一个问题如何仅保存这封信的第一次出现 程序应显示 5 10 这意味着 匹配
c
regex
Assembly
x86
inlineassembly
64 位整数的 cmpxchg 示例
我在 i686 架构中使用 cmpxchg 比较和交换 进行 32 位比较和交换 如下所示 编者注 原来的 32 位示例有错误 但问题不在于它 我相信这个版本是安全的 而且作为奖励 它也可以正确编译 x86 64 另请注意 为此不需要或不建
gcc
Assembly
x8664
inlineassembly
破坏红色区域的内联汇编
我正在编写一个加密程序 其核心 一个广泛的乘法例程 是用 x86 64 汇编语言编写的 既是为了速度 也是因为它广泛使用诸如adc我不想内联这个函数 因为它很大并且在内循环中被调用多次 理想情况下 我还想为此函数定义一个自定义调用约定 因为
c
gcc
x86
inlineassembly
redzone
为什么我们需要在内联汇编中修改寄存器列表?
我的指南书中写道 在内联汇编中 Clobered 寄存器列表用于告诉 我们正在使用的寄存器的编译器 因此它可以在之前清空它们 那 我完全不明白 为什么编译器需要知道这一点 保留这些寄存器有什么问题 他们的意思是备份它们并在汇编代码之后恢复它
c
Assembly
gcc
Compilation
inlineassembly
内联汇编的“现实”用途有哪些? [复制]
这个问题在这里已经有答案了 有什么是我们可以在汇编中做但在原始 C 中不能做的吗 或者有什么在组装中更容易做的事情吗 是否有任何现代代码实际上是使用内联汇编编写的 或者它只是作为遗留或教育功能实现 内联汇编 以及相关说明 调用纯粹用汇编语言
c
Assembly
inlineassembly
C 代码中的内联汇编语句和适用于 ARM Cortex 架构的扩展 ASM
我正在尝试编译以下两段代码ARM编译器5对于 Cortex A 微处理器 Part 1 static inline void cp15 write sctlr uint32 t value asm mcr p15 0 0 c1 c0 0 r
c
Assembly
arm
inlineassembly
keil
为什么这个带有 gcc (clang) 内联汇编的简单 c 程序表现出未定义的行为?
我正在尝试使用 gcc 汇编程序扩展做一件非常简单的事情 将 unsigned int 变量加载到寄存器中 加 1 给它 输出结果 编译我的解决方案时 include
gcc
x86
inlineassembly
gnuassembler
如何指示可以使用内联 ASM 参数*指向*的内存?
考虑以下小函数 void foo int iptr iptr 10 1 asm volatile nop r iptr iptr 10 2 使用海湾合作委员会 这编译为 foo nop mov DWORD PTR rdi 40 2 ret
c
gcc
Assembly
Clang
inlineassembly
通过c#编辑内存地址
我想编辑一个活动的应用程序 编辑内存地址 在地址上00498D45我想编辑它的值 当前值 MOV BYTE PTR SS EBP 423 7 to 更新值 MOV BYTE PTR SS EBP 423 8 到目前为止我得到的是这个 在网上
c
inlineassembly
使用内联汇编修改数组元素
有没有办法通过内联汇编修改特定的数组元素 int move 2 我正在寻求改变move 0 and move 1 in asm 我是汇编编码的新手 主要坚持C 可能有一个非常简单的答案 到目前为止我已经尝试移动move 1 到寄存器中 将我
c
Assembly
inlineassembly
无法从 MSR 读回
我正在编写一个内核模块 它是关于读写 MSR 的 我写了一个简单的程序进行测试 但仍然失败 它所做的就是写入 MSR 然后读回 这是代码 static int init test3 init void uint32 t hi lo hi 0
c
gcc
Assembly
x86
inlineassembly
GCC 内联汇编错误:错误:表达式后出现垃圾“(%esp)”
GCC 内联汇编错误 错误 表达式后出现垃圾 esp 我正在研究 gcc 内联汇编 我的环境是Win 7 32位 mingw gcc 4 6 1 我对 m 约束有疑问 这是我的c函数代码 static int asm test int a
gcc
Assembly
inlineassembly
gcc,内联汇编 - Pushad/popad 丢失?
有什么方法可以避免复制粘贴pushad popad指令体到我的代码中 因为 gcc 当前标志 Wall m32 抱怨说 asm pushad 错误 没有这样的指令 pushad asm popad 错误 没有这样的指令 popad GCC
c
gcc
Assembly
stack
inlineassembly
在 Objective-C 中使用内联汇编对变量进行 ROL / ROR
我想对 Objective C 程序中的变量执行 ROR 和 ROL 操作 然而 我无法做到这一点 我不是装配专家 这是我到目前为止所做的 uint8 t v1 uint8 t v2 v2 is either 1 2 3 4 or 5 as
Objectivec
xcode
x8664
inlineassembly
如何从 CUDA C 调用 ptx 函数?
我正在尝试找到一种从 CUDA C 调用 ptx 函数 func 的方法 假设我有一个像这样的 ptx 函数 func reg s32 res inc ptr reg s32 ptr reg s32 inc add s32 res ptr
Assembly
CUDA
inlineassembly
使用 GCC 扩展 ASM 将内联 Intel ASM 转换为 AT&T ASM
我花了 2 天的时间来研究 AT T 内联汇编 但是在转换这个汇编时遇到了一些问题 static char vendername 50 0 asm mov eax 0 cpuid mov dword ptr vendername ebx m
gcc
Assembly
x86
inlineassembly
对于 asm 语句中的临时寄存器,我应该使用 clobber 还是虚拟输出?
正如这个问题的标题中提到的 当我修改 asm 语句中的一些寄存器时 出于临时原因 在 clobber 和 dummy 输出之间哪个选项更好 例如 我在中实现了两个版本的交换功能link 并发现两个版本生成相同数量的输出指令 我应该使用哪个版
Assembly
gcc
inlineassembly
在内联汇编中访问 C++ 类成员
问题 如何从非 POD 类中访问程序集中的成员变量 详细说明 我已经为类成员函数编写了一些内联汇编代码 但令我困惑的是如何访问类成员变量 我已经尝试过offsetof宏 但这是一个非 POD 类 我当前使用的解决方案是将全局范围的指针分配给
c
Assembly
g
inlineassembly
«
1
2
3
4
5
6
»