x86-64是Intel x86架构的64位扩展
我有一个带有初始化全局变量的简单程序,我正在尝试使用 ptrace 来读取其数据部分。 限制: 我没有给小精灵许可。 我没有root权限,所以...
考虑像这样的内联汇编: uint64_t 标志; asm(“推 pop %0" : "=rm"(flags) : : /* ??? */); 尽管事实上可能存在某种内在的东西来获取内容......
如何在 Wix Toolkit 的 MSI 项目中的 Template Summary 中插入 Intel64 或 x64?
我正在编写一个简单的代码来安装 Program Files 文件夹中的文件,而不是 Program Files (x86) ...
setcc 指令写入寄存器的低字节。如果我写,例如“setnl cl”,ecx/rcx 会被零扩展吗? 编辑:在下面发表评论后,我发现 setcc 不为零-
我如何获得输入和输出我根本不明白,也没有在任何地方找到一个简单的例子 我唯一拥有的是: 我在视觉工作室中使用masm ;获取写句柄 MOV 接收,
在英特尔软件开发人员手册,第 2B 卷,第 4-540 页中,介绍了汇编 RDPID 指令。 操作码/指令 F3 0F C7 /7 RDPID r32 打开 右 64/32 位模式 NE/V CPUID 功能标志
下面的MASM程序启用了陷阱标志(TF),但它会导致程序过早退出 普什夫;将 FLAGS 压入堆栈 流行斧头;将 FLAGS 弹出到 AX 寄存器中...
尝试在我的基于 x86 的平台(Intel Cherry Trail x5 Z-8350)上通过三重故障发出平台重置,但平台只是挂起。我在 qemu 上看到了预期的行为 - 系统在三重故障时重新启动...
有没有一种方法可以在不使用外部库的情况下在c中打印n位(例如256位)整数?
我找到了一种方法来制作一个n位整数并对整数进行算术运算,但我不知道如何打印这些整数,我制作一个n位整数的方法只是制作一个数组,让我们说c...
x86_64 nasm read 系统调用不是以 null 终止的
x86_64 nasm read 系统调用不是以 null 终止的 装配新手。事实上,这是我的第一个 hello world 程序。 操作系统:Arch Linux(64位) 逻辑 我有三个功能。 strlen、标准输入和标准输出。 斯特伦:...
VGF2P8AFFINEINVQB是最长的x86指令助记符吗?
琐事问题 17 个字符,VGF2P8AFFINEINVQB - 伽罗瓦域仿射变换逆,是最长的 x86 指令助记符吗?有长度限制吗?
x86-64 是否有类似于“i”约束的约束,但仅当操作数值适合 32 位有符号立即数时才匹配? 对于下面所示的功能,我会
只是好奇是否可以在程序中将所有 MOV 替换为 PUSH/POP? 我知道这种替代方法不切实际且效率低下。 这个 godbolt 示例展示了使用 M 的标准 printf 调用...
有问题的代码: mov ebx,fs:30h 随后的 shellcode: 648b1d30000000 我似乎无法弄清楚如何在没有空字节的情况下编写此代码。 预先感谢。
为什么 x86 汇编函数调用第一个参数是 rbp - 4 而不是 rbp + 4
int square(int num, int i2) { 返回 num * num; } 平方(整数,整数): 推送rbp 移动 rbp, rsp mov DWORD PTR [rbp-4], edi mov DWORD PTR [rbp-8],esi ...
尝试使用内联 __asm() 在 C 中创建最小的 32 位位反转。 到目前为止,我已成功将 __asm() 代码大小调整为 23 个字节。 我很好奇是否有办法进一步减少鳕鱼......
搜索了Intel手册,但找不到保留的RFLAGS 32-63位的任何内部描述。 在此 godbolt 演示中,当在 64 位模式下执行时,输出显示当前状态...
如何在 C 中使用 asm 添加两个 64 位数字时访问进位标志
是的,谢谢,有效。 @彼得科德斯。 __int128 也可以工作。但是,正如您所说,使用多精度算术的内在函数,即 C 中的 _addcarry_u64,使用头文件 immint...
为什么mem_load_retired.l1_hit和mem_load_retired.l1_miss没有添加到加载总数中?
我正在研究缓存对 x86-64 CPU 性能的影响。我一直在使用 Linux 的 perf 来监控缓存命中/未命中率,特别是这些计数器: mem_inst_retired.all_loads
我想移动比较结果设置的零标志,例如“cmp rax,rbx”,进入寄存器。我知道我可以使用 PUSHF/PUSHFD/PUSHFQ 之一将标志推入堆栈,但现在我