assembly - 为什么不能做 mov [eax], [ebx]
问题描述
我可以做这个:
mov eax, ebx
还有这个:
mov [eax], ebx
甚至这样:
mov eax, [ebx]
但不是这个(错误 C2415):
mov [eax], [ebx]
只是 wtf... 为什么?它与 *ptr1 = *ptr2 相同,为什么我能够将一个寄存器复制到另一个寄存器,通过寄存器中的地址将值复制到另一个寄存器或将寄存器的值复制到存储在另一个寄存器中的地址...
但它不能将一个地址上的值复制到另一个地址。为什么?
解决方案
mov [eax], [ebx]
将意味着“将指向的内存位置的内容移动到指向ebx
的内存位置eax
。这是内存到内存的移动,英特尔不支持。
推荐阅读
- java - JSpinner 不接受输入的最后一位数字
- python - 绘制球面多边形 u,v 点
- c# - 如何在 XAML 和 C# 上更改具有相同日期的字符串的颜色
- discord.js - 如何在 Embed Discord JS v13 中发送服务器区域?
- c# - .NET 3.1 中来自 HTTPClient 的 SendAsync 中的对象循环 Json
- javascript - 如何默认将className prop传递给所有组件,而不是每次都定义它
- laravel - 为什么 laravel 8 表单验证请求不起作用,如文档中所示
- reactjs - 无法接收以获取 React.js 中的单击按钮值
- python - 使用不和谐的用户输入在 python 中编辑 JSON 值
- c - c 编程中长数据类型的默认值