=。=crt_printf MASM CUI的确有点坑
.386
.model flat, stdcall
option casemap : none
include windows.inc
include kernel32.inc
includelib kernel32.lib
include masm32.inc
includelib masm32.lib
include user32.inc
includelib user32.lib
include msvcrt.inc
includelib msvcrt.lib
.data
Password BYTE '1234567', 0
PasswordLength BYTE $ - Password
Welcome BYTE 'Please input password', 0Ah, 0Dh, 0
format BYTE '%s', 0
OK BYTE 'OK!', 0
WRONG BYTE 'NO!', 0
.code
main PROC
local @valid_flag : dword
local @buffer[1024] : byte
local @authenticated : dword
local @small_buffer[8] : byte
mov @valid_flag, 0
.while 1
push OFFSET Welcome
call crt_printf
add esp, 4
lea eax, @buffer
push eax
push OFFSET format
call crt_scanf
add esp, 8
jmp check
begin:
.if eax == 0
push OFFSET OK
call crt_printf
add esp, 4