【发布时间】:2013-03-23 20:53:01
【问题描述】:
为什么我在下面的代码中得到error: value out of range.?
mov eax,dword ptr "abcdlol$"
我想将"abcdlol" 的地址放入eax 寄存器,但看起来这不是FASM 复制到eax 的值。
C 代码示例:int *p="lol";
如何解决这个问题?这是汇编程序的限制吗?
【问题讨论】:
-
汇编语言非常原始,几乎和单个指令一样原始。
mov eax,dword ptr "abcdlol$"(暂时假设它是正确且有意义的)和int *p="lol";要求至少做两件事:为数据分配空间并将数据写入那里并将该数据的地址放入寄存器或变量中。没有一条指令或汇编语言指令可以做到这一切。您必须将事情进一步分解为数据定义/声明和代码。