x86-64是Intel x86架构的64位扩展
我在研究这个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 ... ...
考虑这个函数:unsigned long f(unsigned long x) { return x 7; }。使用-O3,Clang将除法变成了乘法,正如预期的那样:f: # @f ...
void new2d(int* aInit, int* aResult) { int cyclic[34] = {0}; for (int i = 0; i < 32; i++) { cyclic[i] = aInit[i]; } cyclic[32] = aInit[0]; ...。
Intel优化手册B.5.7.3 Decoded ICache中没有部分命中。如果在32字节的分块上缺少任何属于该查找的微操作,则会发生Decoded ICache miss,在 ...
非常简单的汇编介绍代码。似乎通过gcc -o prog1 prog1.s编译ok,然后.prog1只是跳过一行,什么都不显示,就像在等待一个代码没有问的输入。有什么问题吗?...
优化线性序列的总和=n * (n+1)2 - 有什么比lea imul shrd更快的吗?
这是我的汇编代码用于计算的总RAX = 1 + 2 + 3 + ......。+ rdi使用高斯方法rax =(rdi + 1)*rdi 2.你们有什么想法或知道英特尔指令,进一步......
我试图按照同样的C语言写法建立一个TCP绑定shellcode。下面是asm: global _start section .text _start:; socket() call xor rax,rax add rax,41 xor ....
在x86-64中,当我们要推送堆栈上的东西时,是否总是要做pushq?
因为在x86-64中,16个寄存器都可以是8个字节,在函数调用开始时,当函数(callee)要推送它要使用的callee保存的寄存器(%rbx、%rbp和%r12-15)时,它......。