Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如果在 64 位代码中使用 32 位 int 0x80 Linux ABI 会发生什么?
int 0x80在 Linux 上总是调用 32 位 ABI 无论从什么模式调用 args inebx ecx 以及来自的系统调用号 usr include asm unistd 32 h 或者在没有编译的 64 位内核上崩溃CONFIG
Linux
Assembly
x8664
systemcalls
ABI
“条件调用”在 amd64 上的性能
当考虑代码关键部分中的条件函数调用时 我发现 gcc 和 clang 都会围绕该调用进行分支 例如 对于以下 诚然微不足道的 代码 int32 t attribute noinline negate int32 t num return n
Assembly
x86
x8664
branchprediction
如何使用 gcc 风格的内联汇编打印寄存器号?
灵感来自最近的一个问题 gcc 式内联汇编的一种用例是对编译器和汇编器都不知道的指令进行编码 例如 我给了这个例子了解如何使用rdrand工具链上的指令太旧而无法支持它 rdrand rax setc b1 asm volatile byt
Assembly
gcc
Clang
inlineassembly
ARM64
GCC 不使用 inc
海湾合作委员会编译器 gcc version gcc GCC 4 8 2 不生成inc汇编指令 它实际上可能有用 例如在这个 C 程序中 int main int argc char argv int sum 0 int i for i 0
Optimization
gcc
Assembly
x8664
gcc48
x86 给定 AH 和 AL 计算 AX?
我在理解x86汇编中的寄存器时遇到困难 我知道EAX是完整的32位 AX是低16位 然后AH和AL是AX的高8位和低8位 但我正在做一个问题 如果 AL 10 且 AH 10 AX 中的值是多少 我对此的想法是将 10 转换为二进制 101
Assembly
x86
cpuregisters
x86 上哪个写屏障更好:lock+addl 或 xchgl?
Linux 内核使用lock addl 0 0 esp 作为写屏障 而 RE2 库使用xchgl 0 0作为写屏障 有什么区别 哪个更好 x86 也需要读屏障指令吗 RE2 将其读屏障函数定义为 x86 上的无操作 而 Linux 将其定义
Assembly
x86
memorybarriers
英特尔 64 和 IA-32 |原子操作包括获取/释放语义
根据 Intel 64 和 IA 32 架构软件开发人员手册 LOCK 信号前缀 确保处理器在信号置位时独占使用任何共享内存 这可以是总线或高速缓存锁的形式 但是 这就是我问这个问题的原因 我不清楚这个前缀是否也提供任何内存障碍 我正在多处
Assembly
locking
x86
intel
memoryfences
64 位 Windows 中的汇编系统调用
我使用的是 Windows 10 安装了 Cygwin 我一直使用 Cygwin 来使用 Cygwin 安装的 gcc 和 nasm 来编译 汇编 c 和汇编程序 据我所知 nasm有一个 f win64模式 因此它可以汇编64位程序 现在
Windows
Assembly
x8664
systemcalls
interrupt
实际的机器代码在各个方面是什么样子的? [关闭]
很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 关于机器代码到底是什么似乎有很多观点 我听有人说它是汇编 二进制或十六进制 机器代码本质
Assembly
Hex
machinecode
machineinstruction
互斥锁和解锁函数如何防止 CPU 重新排序?
据我所知 函数调用充当编译器屏障 但不充当 CPU 屏障 This tutorial说如下 获取锁意味着获取语义 而释放锁 意味着释放语义 其间的所有内存操作都是 包含在一个漂亮的小屏障三明治内 防止任何 跨边界的不良内存重新排序 我假设上
c
Assembly
x86
mutex
memorybarriers
是否可以在 Mac OS 上调试 x64 程序集?
我希望能够在我的 Mac 上使用 Sierra 10 12 4 编写和调试 x64 程序集 人们可能会认为这不会是一个特别困难或晦涩的愿望 但尽管花费了很多时间的努力和大量的在线搜索 我仍然没有成功 而且我还没有找到其他人有这样的愿望 我更
MacOS
debugging
Assembly
计算设置的位数
我想计算设置的二进制数中的位数 例如 用户输入数字 97 二进制表示为 01100001 该程序应该告诉我 3 位是使用 MIPS ISA 设置的 我能够用 C 实现这一点 但我不知道如何使用汇编代码实现它 您要查找的内容通常称为人口计数
Assembly
MIPS
hammingweight
自动 x86 指令混淆
我正在开发一个 x86 asm 混淆器 它将 Intel 语法代码作为字符串并输出一组等效的混淆操作码 这是一个例子 mov eax 0x5523 or eax ebx push eax call someAPI 变成类似这样的东西 mov
Assembly
Automation
x86
obfuscation
强制 Visual Studio 在调试时始终“重建全部”
编辑 基本上我需要的是 Visual Studio 在我进行调试时始终重建所有内容 我目前正在使用 Visual Studio 来编译我的汇编程序 使用 MASM 总的来说它工作正常 然而我遇到了一个恼人的问题 如果我包含一个像这样的文件
VisualStudio
visualstudio2010
Assembly
Compilation
MASM
numpy around/rint 与 astype(int) 相比慢
所以如果我有类似的东西x np random rand 60000 400 200 iPython 的 timeit says x astype int 需要 0 14 毫秒 np rint x and np around x 需要1 01
python
c
Assembly
NumPy
SSE
x86-64 REX 前缀中的“REX”代表什么?
From 英特尔的SDM 第 2 2 1 节指定 REX 前缀用于 指定 GPR 和 SSE 寄存器 指定 64 位操作数大小 指定扩展控制寄存器 但缩写词中的字母 REX 代表什么 这个2002年热门薯条演示AMD 扩展了幻灯片 10 上
Assembly
x86
x8664
intel
machinecode
使用 LLVM 进行源到源编译[关闭]
Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我需要将 x86 汇编源代码转换为 LLVM 人类可读的 ll 文件 又名 LLVM 汇编语言 我怎样才能做到这一点 如果没有直接的解决方案 是否有
Assembly
LLVM
codetranslation
在x86 8086汇编中生成0-9范围内的随机数
首先 我对 8086 Assembly 非常陌生 掌握知识对我来说相当困难 尽管如此 我还是会尽力而为 我一直在尝试编写一个代码来生成0 9范围内的随机数 在研究了几个例子和建议之后 这就是我的结论 为了简单起见 我没有对检索到的时钟计数应
Assembly
Random
x86
x8616
GBZ80:LD HL,(SP+e) 如何影响 H 和 C 标志?
在 Gameboy Z80 上 究竟如何LD HL SP e 操作影响 H 和 C 标志吗 半进位 进位 参考 http www devrs com gb files opcodes html 我意识到这是一个老问题 但我不久前遇到了类似的
Assembly
z80
gameboy
ARM 汇编器 - 如何使用 CMP、BLT 和 BGT?
问你们一个简单的问题 在我的循环中 我需要使用 CMP BLT 和 BGT 来比较一些值 如何在下面的循环中使用所述指令 我正在尝试使用 BGT BLT 和 CMP 因为我需要它们来使我的应用程序正常工作 问题是我不知道如何使用它们 如果我
c
Assembly
Embedded
arm
«
1 ...
79
80
81
82
83
84
85
...88
»