x64 汇编代码:我可以期望未在堆栈中分配的值保持不变吗?

问题描述 投票:0回答:0

假设我有这两个连续的x64指令(在Windows平台下运行):

ADD RSP, 8
MOV RAX, QWORD PTR [RSP - 8]

如您所见,它相当于

POP RAX
[RSP - 8]
的位置不再分配,我正在访问它!!

  1. 我可以期望
    [RSP - 8]
    处的值不会被系统中断或 Windows 更改吗?

我的意思是,在修改

RSP - 8
位置的两条指令的执行之间是否可以进行某些操作(中断、上下文切换...),以便
MOV RAX, [RSP - 8]
会读取垃圾值?

  1. 如果这两个在设备驱动程序中运行怎么办?这同样适用吗?
assembly 64-bit
© www.soinside.com 2019 - 2024. All rights reserved.