汇编 - 我可以在过程中声明变量吗?

时间:2014-08-31 15:27:49

标签: assembly

问题很简单。 我想知道在程序中声明变量是否可行。 比如这样:

SAMPLE PROC NEAR
    ; PROC BODY
RET
VARIABLE DW 0000H
SAMPLE ENDP

我不认为这应该是一个错误。由于RET最终可用。 我真正想做的是拥有PROC所需的常量数组。某种查找表。

如果不合法,我想知道原因。

1 个答案:

答案 0 :(得分:3)

程序界限在装配中几乎毫无意义。如果变量在ENDP之前或之后,则无关紧要。所以是的,只要你不尝试将变量内容作为代码执行,语法就可以了。但这里有一个更深层次的问题。

保护模式系统(Windows,Linux)通常使代码段只读;试图写入这样的变量会使程序崩溃。您必须使用数据部分或堆栈。

在DOS下,没关系。