我正在尝试创建一个存储10个双字整数的数组。为了允许用户输入他们自己的整数,我使用跳转来实现它。
.386
.model flat, stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
include msvcrt.inc
includelib msvcrt.lib
.data
InputMsg db "Input 10 integers: (Separated by Space)", 10, 0
IntFormat db "%d", 0
.data?
IntData dword 10 dup(?)
.code
start:
invoke crt_printf, addr InputMsg
mov dh, 0
lea eax, IntData
ScanLoop:
invoke crt_scanf, addr IntFormat, dword ptr [eax]
inc eax
inc dh
cmp dh, 10
js ScanLoop
invoke ExitProcess, NULL
end start
但这就是问题所在。我试图运行该程序,并成功编译。但是输入一个整数后程序出错了。 为什么会这样?非常感谢!