Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 将寄存器的内容移动到变量中_Assembly_Fasm - Fatal编程技术网

Assembly 将寄存器的内容移动到变量中

Assembly 将寄存器的内容移动到变量中,assembly,fasm,Assembly,Fasm,我需要将寄存器的内容移动到变量中。 这项工作: mov [a], 8 ; it's a random value (8), just for example. 但是,这不起作用: mov eax, 8 mov [a], eax 我已经搜索过了,但没有找到符合我需要的东西。因此,我转向你们,希望找到解决这个“问题”的办法 PS:我也尝试交换寄存器/变量值,但这不起作用,因为我的变量有一个未知值(->“”?)。这是正确的语法;您是如何声明a?有错误信息吗?“不起作用”不是对a的充分描述

我需要将寄存器的内容移动到变量中。 这项工作:

mov [a], 8      ; it's a random value (8), just for example.
但是,这不起作用:

mov eax, 8
mov [a], eax
我已经搜索过了,但没有找到符合我需要的东西。因此,我转向你们,希望找到解决这个“问题”的办法


PS:我也尝试交换寄存器/变量值,但这不起作用,因为我的变量有一个未知值(->“”?)。

这是正确的语法;您是如何声明
a
?有错误信息吗?“不起作用”不是对a的充分描述。@PeterCordes:我已经声明了“a”,如下所示:“a dw?”。错误消息是:“操作数大小不匹配”。我或多或少明白了消息的意思,但我不知道如何修复它。
eax
是一个32位dword寄存器,但您的
a
只是一个16位
。您正在使用的汇编器将大小与符号关联
mov[a],ax
可以工作,但您可能想要一个dd?。接近的副本,但我找不到32位Q&a,或者使用FASM的。不过,基本概念是相同的:一些汇编器(包括FASM)根据其声明为内存操作数提供默认操作数大小。(即使他们没有这样做,如果你不是有意这样做的话,在静态分配的
dw
之外存储也是一个错误。)@PeterCordes:的确,它是有效的!非常感谢你。我知道接下来我应该提防什么,再次谢谢你:)