x86-64是Intel x86架构的64位扩展
通过bt指令,我可以在一条指令中获取一个字节中第n位的值。将该操作转换为 SIMD 时,我目前将源字节、索引和 0x1 常量放入
为什么我的 Alder Lake CPUID 报告它不支持硬件 P-State?
我有一个英特尔 i5-1235U。 CPUID 报告它不支持硬件 P 状态 (HWP)。据英特尔称,所有 Alder Lake CPU 都支持 HWP。 CPUID 在两个 Windows 上都报告没有 HWP...
在 masm64 中,如果我编写指令 Push 0,它将在堆栈中压入一个 64 位立即数(即 esp=esp-8)。 因此,如果我只想推送一个 16 位立即数来设置 EFLAGS,我不知道只能写
我在组装和链接我的 64 位汇编文件时遇到问题。我该如何修复错误?
最近在学习汇编语言,想运行64位的汇编代码文件。 但是当我尝试使用 gcc -o test1 test1.s 命令组装和链接我的文件时,我遇到了一个错误: /usr/bin/...
在 Apple-Silicon 上安装 x86_64 二进制文件的 Ubuntu
我教一门“计算机体系结构和汇编语言”课程。我在课程中教授的程序集是 Intel x86_64,但显然很多学生都有 Mac M1/M2(Apple-Silicon)笔记本电脑。 我的
使用 NASM 的 Windows x64 程序集编程中未解析的外部符号 printf
最近一直在努力学习汇编,偶然发现了这篇文章。作者使用 NASM 和 Microsoft 链接器来设置汇编工作环境。我按照相同的步骤安装了 N...
我在研究这个C函数的汇编代码: int stringlen(char *s1, char *s2) { 整数结果= 0; 诠释我= 0; 而 (s1[i] != 0) { 结果++; 我++; } 内...
多线程固定大小矩阵向量乘法针对具有非均匀缓存的多核 CPU 进行了优化
我想为固定大小的矩阵(~3500x3500 浮点数)实现并行矩阵向量乘法,该矩阵针对我的 CPU 和缓存布局(AMD Zen 2/4)进行了优化,并为 ch 重复执行...
我第一次学习汇编语言。这是 (gdb) 反汇编的一部分: 移动 $0x131,%eax cmp 0x8(%rsp),%eax //这里的问题,0x8(%rsp)的值是多少? (gdb)i r rax 0x131...
x86-64 程序集:GCC 出现分段错误,但 ld [重复] 不会出现分段错误
我正在使用 nasm 进行 x86-64 汇编。我的任务是编写一个代码,接受一个数字作为命令行参数并将其转换为整数。使用 ld linke 链接时代码正常工作...
那是哪个 CPU 错误?通常用不相关的地址`Attempt to execute non-executable address`
一个非常常见的 Windows 用户模式应用程序以各种不可能的方式崩溃,例如: 尝试从明确有效的 RSP 的地址读取/写入: 尝试从地址 ffffffffffffffff 读取
对于上下文,我在 64 位 Debian 发行版上使用 NASM。 我仍在学习 Assembly 作为编写我自己的编程语言的一部分,但我最近遇到了一个我不确定如何处理的问题。
我有一些 C++ 代码,我必须确保在退出之前调用特定的析构函数,我想知道它是否在 [[noreturn]] 函数之前被调用。 所以我写了这个模拟...
我在uiCA中分析了一段汇编代码(https://bit ly/3lKtPYY <- uiCA can only share with bit ly but the link is blocked :( Throughput (in cycles per iteration): 5.25 Bottleneck: Issu...
在 ARM 架构上使用 objdump:反汇编到 INTEL arch
我有一个目标文件,正在尝试反汇编它。当我使用时: objdump -d example.o 我得到了一个文件格式为 elf64-littleaarch64 的程序集。 我正在尝试将其拆解为 INTEL
这是图书馆。 图书馆.asm: 节.text 全局 return_number 返回编号: 移动 eax, 10 退役 我可以使用命令行轻松创建共享和静态库: nasm -f elf64 -o libr...
在内存位置上调用 "add "是否比在寄存器上调用它然后移动值要快?
什么更快:add DWORD PTR [rbp-0x4],1 还是 mov eax,DWORD PTR [rbp-0x4] add eax,1 mov DWORD PTR [rbp-0x4],eax 我看到了编译器生成的第二段代码,所以可能调用add on ...
64位x86中MOVZX r32、rm16与MOVZX r64、rm16的区别。
MOVZX r32,rm16和MOVZX r64,rm16的操作码都是0F B7,但后者的前缀是REX.W。这两条指令有什么不同?难道他们两个都不应该将32位的上位数清零吗?
0x0000000000401161 : push %r14 0x0000000000401163 : push %r13 0x0000000000401165 : push %r12 0x0000000000401167 : push %rbp ... ...