assembly - amd64 MOV 指令未正确复制
问题描述
发生了一些奇怪的事情,我不明白。
我有一个数据变量:
variable_a dq 0
我检查它是0:
(gdb) x variable_a
0x0: Cannot access memory at address 0x0
到目前为止,一切都很好。
我有拉克斯:
(gdb) i r
rax 0x7fffffffe9e2 140737488349666
我将 rax 移动到变量中。
mov [variable_a], rax
我打印变量。
(gdb) x variable_a
0xffffffffffffe9e2: <error: Cannot access memory at address 0xffffffffffffe9e2>
为什么会这样?看起来 1/4 的变量在应该为 0 时被设置为 1。
我改为使用 BSS 变量,它工作得很好。我正在使用 YASM。
解决方案
推荐阅读
- django - 需要在管理员更改列表上显示相关模型特定字段 - Django 1.11
- java - 是否可以在运行时扫描包层次结构以查找调用方法的位置?
- angular - 如何使用角度 4 从 sheetjs 中删除具有某些条件的列?
- c# - 使用 LinqToExcel 时无法随机排序
- node.js - 我如何在 Nodejs 中处理 Angular 404 请求
- python - 在 Raspberry Pi 上安装 mitmproxy 时出现 python 问题
- java - JAVA中的简单CSV文件比较
- c# - 通过自定义 DNS 服务器路由应用程序 Internet 访问
- python - 如何在 Docker 中运行 flask_migrate
- python - 带有 URL 的 xlsxwirter 合并范围