x86-64 相关问题

x86-64是Intel x86架构的64位扩展

在做除法乘法时,多走一步是不是会快一些?

考虑这个函数:unsigned long f(unsigned long x) { return x 7; }。使用-O3,Clang将除法变成了乘法,正如预期的那样:f: # @f ...

回答 1 投票 3

在线组装中的子数组。C++

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]; ...。

回答 1 投票 0

错过了uop-cache的粒度

Intel优化手册B.5.7.3 Decoded ICache中没有部分命中。如果在32字节的分块上缺少任何属于该查找的微操作,则会发生Decoded ICache miss,在 ...

回答 1 投票 0

汇编可执行文件不显示任何内容(x64)

非常简单的汇编介绍代码。似乎通过gcc -o prog1 prog1.s编译ok,然后.prog1只是跳过一行,什么都不显示,就像在等待一个代码没有问的输入。有什么问题吗?...

回答 1 投票 2

优化线性序列的总和=n * (n+1)2 - 有什么比lea imul shrd更快的吗?

这是我的汇编代码用于计算的总RAX = 1 + 2 + 3 + ......。+ rdi使用高斯方法rax =(rdi + 1)*rdi 2.你们有什么想法或知道英特尔指令,进一步......

回答 1 投票 0

为什么accept()会返回ERESTARTSYS?

我试图按照同样的C语言写法建立一个TCP绑定shellcode。下面是asm: global _start section .text _start:; socket() call xor rax,rax add rax,41 xor ....

回答 1 投票 0

在x86-64中,当我们要推送堆栈上的东西时,是否总是要做pushq?

因为在x86-64中,16个寄存器都可以是8个字节,在函数调用开始时,当函数(callee)要推送它要使用的callee保存的寄存器(%rbx、%rbp和%r12-15)时,它......。

回答 1 投票 0

rcx是否总是指向进程入口点的PEB?

64位Windows似乎用rcx = r8 = &PEB和rdx = r9 = &entrypoint来调用一个exe的entrypoint,就像entrypoint被声明为entrypoint(PEB *peb, void *entry)一样。这些细节是否...

回答 1 投票 4

如何在Linux中编译X86汇编并调用它的函数?

我正在Ubuntu 18.04 X86_64中测试一个X86汇编代码,如下所示,#define I8042_DATA_REG $0x60 #define I8042_STATUS_REG $0x64 .globl flashy .text * Flash ...

回答 1 投票 0

如何在shellcode中设置一个特定的setuid?

我正在使用下面的汇编代码来设置uid(0),并在缓冲区溢出时得到一个shell xor rdi,rdi mov al,0x69 syscall xor rdx,rdx movabs rbx,0x68732f6e69622fff shr rbx,。

回答 1 投票 0

在宏中指定int大小(或其他)。

我试图用这些宏将3个整数(即每个21位)存储在一个长的int中: typedef long int Triple; #define TR_A(o) ((int)((o & 0x7FFFFC0000000000) >> 42)) #define TR_B(o) ((int)((...))

回答 1 投票 1

如何获取第一个命令行参数并将其放入内存中的静态缓冲区?

我想把第一个长度为4的命令行参数放进缓冲区,我可以通过以下方式获取其中的每一个字符: .code64 .global _start .bss .lcomm mybuf , 4 .text _start: mov 16(%rsp) , ...

回答 1 投票 0


用Delphi 64位检测虚拟化环境?

/ VMware检测如Elias Bachaalany所描述的函数IsInsideVMware: Boolean; begin Result := True; try asm push edx; push ecx; push ebx; mov eax, 'VMXh'; ...

回答 1 投票 0

为什么turbofan会剥离小循环?

当编译一个循环时,turbofan似乎在大多数时候都会剥离第一个循环迭代。例如一个循环,比如: function fill256(int32Array) { var i = 255; do { int32Array[i] = 0; } while(...)

回答 1 投票 1

clang __asm__在case statment中使用标签,得到错误:指令操作数无效。

我正在尝试在C源代码中添加Label(仪器仪表);对汇编有一点经验,comipler是clang;我在CASE语句中的__asm__和Label有一个奇怪的行为!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)。

回答 1 投票 0

小型PCIE TLP写入的原子性

从软件进程的角度来看,是否有任何关于PCIe设备针对常规内存的卡到主机写入的保证,其中单个TLP写入是完全包含的......。

回答 1 投票 1

Linux中x86架构的IPI种类

我想知道在Linux中x86_64有哪些不同类型的IPI。特别是,我想找出IPI中断的不同中断处理程序。在了解...

回答 1 投票 2

GAS是否像NASM一样支持字符串字面数作为数字常量?

在NASM(Intel)中,我可以这样写: mov rax, `Hello!\n` 而这相当于: mov rax, 0xa216f6c6c6548 GAS (AT&T)是否支持任何等价的速记,还是我被写 ...

回答 1 投票 2

Loadbitmap在x86版本编译时运行良好,但在x64版本编译时却无法运行。

我是个新手,不懂C++。这是我从一本WIN32 API书上改编的代码。只有在debug的x86模式开启时,才能如愿以偿。当有x64模式时,虽然在编译,但不能工作。我试着改变了...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.