测试1
.586 .MODEL flat,stdcall option casemap:none ; inc 是一个头文件 include windows.inc include user32.inc include kernel32.inc ;msvcrt.inc 引用c中的输入输出功能 include msvcrt.inc ;库文件 includelib user32.lib includelib kernel32.lib includelib msvcrt.lib .data tex db "你是个小可爱",0 text db "这是一个标题",0 .code main proc ;push 入栈 按钮 0应该是据点的意思 push 0 ;offset 相当于指针,伪指令 push offset text ;下面是标题 push offset tex push 0 call MessageBox ;堆栈平衡一下,不懂 传了4个参数,一个32位 就是16个字节, 测试了不要这一段也可以 add esp,16 push 0 call ExitProcess add esp,4 main ENDP END main
2.利用msvcrt.inc 里面的字符输出
.586 .MODEL flat,stdcall option casemap:none ; inc 是一个头文件 include windows.inc include user32.inc include kernel32.inc ;msvcrt.inc 引用c中的输入输出功能 include msvcrt.inc ;库文件 includelib user32.lib includelib kernel32.lib includelib msvcrt.lib .data tex db "你是个小可爱",0 ;text db "这是一个标题",0 .code main proc ; c 语言中打印 printf("%s"变量) crt_printf crt里面的一个功能 push offset tex call crt_printf push 0 call ExitProcess add esp,4 main ENDP END main
3.字符的输入和输出表示
.586 .MODEL flat,stdcall option casemap:none ; inc 是一个头文件 include windows.inc include user32.inc include kernel32.inc ;msvcrt.inc 引用c中的输入输出功能 include msvcrt.inc ;库文件 includelib user32.lib includelib kernel32.lib includelib msvcrt.lib .data text2 db 0 ; 用来接收 format db "%s",0 .code main proc push offset text2 push offset format call crt_scanf ;因为crt_scanf 需要两个参数,所以前面push 两个 add esp,8 ; c 语言中打印 printf("%s"变量) crt_printf crt里面的一个功能 push offset text2 call crt_printf push 0 call ExitProcess add esp,4 main ENDP END main