MASM - 使用invoke crt_scanf读取多个整数数据

时间:2017-10-16 15:56:04

标签: assembly x86 masm

我正在尝试创建一个存储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

但这就是问题所在。我试图运行该程序,并成功编译。但是输入一个整数后程序出错了。 为什么会这样?非常感谢!

0 个答案:

没有答案