; 注释
; 指定CPU型号
.386
; FLAT - 使用平台内存模式
; STDCALL - 默认函数调用约定
.model FLAT ,STDCALL
; 指定大小敏感
option casemap:none
include msvcrt.inc
includelib msvcrt.lib
include user32.inc
includelib user32.lib
.data
pszStr db 'hello world', 0dh, 0ah , 0
pszPause db "pause" , 0
pszS db "%s" , 0
pszYes db "Yes",0
pszNo db "No",0
; 定义了一个100字节是数组, 使用0来填充
g_buff db 100 dup(0)
; 汇编语句必须写在代码段中
; .code 用于定义代码段
.code
; 指定程序入口
; entry: 表示定义一个标签,entry是标签的名字
entry:
push offset pszStr
call crt_printf
add esp , 4
push offset pszPause
call crt_system
add esp,4
; scanf("%s" , g_buff)
push offset g_buff
push offset pszS
call crt_scanf
add esp , 8
; 判断输入的字符个数是否小于8
; 1. 得到字符串的长度
; int n = strlen(g_buff)
push offset g_buff
call crt_strlen
add esp, 4
; 一般情况, 函数的返回值保存在eax中.
; if ( eax < 8) MessageBox(0,"Yes",0,0)
cmp eax , 8
jb _BLOW
; 如果没有跳, 就说明是大于的
push 0
push 0
push offset pszYes
push 0
call MessageBox
jmp _ENDIF
; else MessageBox(0,"No",0,0)
_BLOW:
push 0
push 0
push offset pszNo
push 0
call MessageBox
_ENDIF:
ret
; 指定程序入口: end + 标签的名字
end entry