x86-64 相关问题

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

汇编语言:64位寄存器的8位版本?

所以,假设我正在使用寄存器%rax和%rdi。作为一个基本示例,假设%rax等效于0xaaaaaaaaaaaaaaaaaa,%rdi等效于0xbbbbccccddddeeff。简单的东西...

回答 1 投票 0

NASM printf打印64位双段错误

我正在努力使组装时的打印精度提高一倍,但我失败了。调用自己计划用作打印双打的助手时,我会遇到段错误[

回答 2 投票 0

使用GCC内联汇编获取Linux syscall的返回值

以下宏可以执行lstat系统调用。 #include #define m_lstat(PATH,FS){\ long _rax = 6; / * sys_newlstat * / \ uint8_t * _path = ...

回答 2 投票 2

我可以将rsp用作通用寄存器吗?

有人告诉我,如果我将rsp用作通用寄存器,则操作系统可能在中断的情况下将寄存器转储到它指向的位置,从而导致问题行为。这是真的吗,如果不是,则是...

回答 1 投票 4

使用x86程序集计算x * log_2(y)

因此,我正试图让处理器计算下面的x * log_2(y)是我当前的汇编代码(nasm语法)。我在XMM0寄存器中有y的输入值,并且X将是一个常量...

回答 1 投票 2

缓冲炸弹3级-防止堆栈损坏

我正在尝试完成缓冲炸弹实验室的第3级。该任务是提供一个漏洞利用字符串,该字符串将导致getbuf将我的cookie(0x4b64b076)返回测试,而不是值1。exploit ...

回答 1 投票 -1

为什么在TRACE_IRQS_OFF之前将rax设置为-ENOSYS

请参阅https://elixir.bootlin.com/linux/v5.0.21/source/arch/x86/entry/entry_64.S#L168。为什么RAX必须更改?为什么选择-ENOSYS?从以上链接复制:ENTRY(entry_SYSCALL_64)...

回答 1 投票 0

resource_stall.other可能意味着什么

Whiskey Lake i7-8565U RESOURCE_STALLS.OTHER看起来不像Intel文档所解释的那样:计算由于其他资源问题而导致执行停止的周期数。我...

回答 1 投票 3

在x64位汇编中执行系统命令?

我最近一直在尝试使用纯汇编来执行系统命令。我设法在x32位二进制文 件中实现了它,如下所示:使用汇编程序执行系统命令(bash)?但是现在我正在尝试...

回答 1 投票 1

C数组的反汇编给出奇怪的结果[重复]

int square(){char test [50]; }上面的代码产生了square():push rbp mov rbp,rsp当我将代码稍微更改为int square(){char test [150]; } ...

回答 1 投票 2

如何在64位汇编程序中使用RIP相对寻址?

我如何在Linux汇编程序中为AMD64体系结构使用RIP相对寻址?我正在寻找一个使用AMD64 RIP相对地址模式的简单示例(Hello world程序)。 ...

回答 2 投票 27

使用内联汇编时出现段故障(堆芯故障)错误

我在GCC中使用内联汇编。我想将变量内容向左旋转2位(我将变量移至rax寄存器,然后将其旋转2次)。我写了下面的代码,但是我遇到了...

回答 1 投票 -1

为什么出现错误24:也可能在asm中打开文件描述符

问题编号1:具有此nasm:节.data dat db“写出:%x”,0xa,0x0节.text全局主外部printf main:push rbp mov rbp,rsp mov rdi,dat mov esi等。 。

回答 1 投票 0

单次对内存副本进行基准测试

Whiskey Lake i7-8565U我正在尝试学习如何手动编写基准测试(不使用任何基准测试框架),该示例具有常规和...的内存复制例程示例。] >> [[< [

回答 1 投票 2

Assembly x64 getcwd()不输出

我刚刚开始学习/使用Linux上的Assembly x64,并尝试通过call调用getcwd()。在尝试调用getcwd()函数之后,我还试图输出不是...

回答 2 投票 3

如何在此x86代码中设置零标志?

今天我们由于以下x86程序集中的idiv指令中的算术异常而导致崩溃。 mov r10d,DWORD PTR [rbp + 0x70] xor ecx,ecx mov eax,r15d test r10d,r10d setle ...

回答 1 投票 0

C11原子获取/发布和x86_64缺乏加载/存储一致性?

我正在努力解决C11标准的5.1.2.4节,尤其是Release / Acquire的语义。我注意到https://preshing.com/20120913/acquire-and-release-semantics/(以及其他)...

回答 1 投票 9

为什么在切换上下文时Golang仅保存%rsp,%rip和%rbp(没有其他被调用者保存的寄存器?)>

在一般的用户线程上下文切换实现中(如setjmp / longjmp和函数返回方式),我们保存并恢复被调用者保存的寄存器,但是golang仅保存并恢复%rsp,%rip和%rbp ...

回答 1 投票 1

我们可以使用U-Boot来启动用于x86-64系统的Linux吗?

是否可以在x86-64机器上使用U-Boot引导Linux内核?] >>

回答 1 投票 0

[gdb将缓冲区清零时显示错误的地址

我的目标是在程序集中初始化缓冲区。我在64位Linux和gdb上使用NASM进行调试。相关的汇编程序如下(我从gdb的TUI模式复制粘贴,因此您可以看到...

回答 1 投票 0

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