【发布时间】:2021-11-27 20:19:35
【问题描述】:
给出以下汇编代码,我知道 .data 向更高的地址增长,因此在运行代码后内存看起来像:
-
-
-
-
-
-
-
- (var3 here and up)
-
-
-
- (var2 here and up)
-
-
-
- (var1 here and up)
所以当他们问最后会在寄存器 rsp 中保存什么时,为什么蓝色选项是正确的?
这是我尝试解决的方法:
- 在第一行中,我们尝试将 var3 的值保存在寄存器中,var3 的值是 var2 的值,即 -1,在第二行中,我们将 6 添加到它,因此总共得到 5。
请注意,在上一个问题中,有人告诉我,标签或变量前面没有 $ 表示其在内存(数据)中的值,而添加 $ 表示其在内存中的地址。
【问题讨论】:
-
请勿发布测试图片! Edit您的问题并将图片替换为其中的测试。
-
投了反对票,因为您发布了一张文字图片。替换图片,我会继续删除反对票。
-
@fuz 我不应该等待老师的许可吗?我知道这很奇怪,但他允许传递图片但不允许复制零件......
-
如果根据 MIT 许可条款(包括复制部分的权利)不允许您发布图片,则根本不应该在此处发布。
标签: assembly 64-bit x86-64 att