装配移动指令异常?

Exception in assembly move instruction?

我意识到在这种情况下禁止从内存复制到内存:

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] 位置。