測試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