程序集移动指令中出现异常



我意识到,在这样的场景中,禁止从内存复制到内存:

section .data
var1 db 23
var2 db 9
section .text
global _start
_start:
mov [var1],[var2]
mov eax,1
mov ebx,0
int 80h

但是,最近我发现代码示例并没有完全遵循规则。想法如下:

section .data
var1 dd 23
var2 dd 9
section .text
global _start
_start:
mov dword [var1],var2
mov eax,1
mov ebx,0
int 80h

我知道我们不能在内存位置之间传输数据,但我想知道是否可以将一个变量的内存位置传递给另一个变量。它实际上是编译并完成工作的
我的问题是:这真的可行吗
提前感谢您,如有任何帮助将不胜感激。

在这种情况下,var2被用作实际的内存地址文字。换言之,它不是试图将某些东西移动到该地址或从该地址移动,而是将地址的值移动到[var1]位置。

相关内容

最新更新