【发布时间】:2016-01-15 21:42:17
【问题描述】:
在汇编编码中,使用 masm32。
如何将值放入变量中,该值不是在 .data 段中定义的,而是由 LOCAL decleration 定义的?
你:
.486
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\macros\macros.asm
include \masm32\include\masm32.inc
include \masm32\include\gdi32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
.code
start:
call main
exit
main proc
LOCAL dewit:DWORD
mov dewit, 0
print dewit
ret
main endp
end start
我尝试过这样的事情:
Mov dewit, 0
它没有工作。但是,这段代码:
Mov dewit, input("enter a number")
确实在其中输入了一个值。
有人吗?
** LOCAL 声明只能在一个过程中
【问题讨论】:
-
mov [dewit], 0 or maybemov word ptr [dewit], 0`?还要定义“不起作用”。 -
没有工作 - 即它遇到了错误,我认为.. 程序在那时“停止工作”
-
信息不够,请提供minimal reproducible example。您可能还想查看生成的汇编代码。此外,在您也可以手动完成之前,请考虑不要使用辅助功能,并了解汇编程序在做什么。
-
我试过你说的,它没有用..现在为什么所有的downvotes?..
-
因为您的代码无法按原样编译。 @Jester 要求提供能够重现您的问题的最小代码:
minimal的意思是:我们可以在我们这边编译的代码。例如。您的代码没有通常的标题语句,Print和Exit没有在任何地方定义,也不是 MASM 可以理解的语句。