程式語言 - Wine - Assembly (x86) - Hello, world!



參考資訊:
http://www.winprog.org/tutorial/start.html
https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox

經典的Hello, world!程式框架總是能夠讓人細心品味一款程式語言的美好,司徒就使用一個簡單的Message對話盒來展現Hello, world!框架

main.S

    .intel_syntax noprefix

    .global WinMain
    .extern MessageBoxA

    .section .data
szCaption: .asciz ""
szContent: .asciz "Hello, world!"

    .section .text
WinMain:
    push ebp
    mov ebp, esp

    push 0
    push offset szCaption
    push offset szContent
    push 0
    call MessageBoxA
    add esp, 16

    xor eax, eax
    leave
    ret

編譯、執行

$ winegcc-development -m32 main.S -o main.exe
$ WINEPREFIX=~/.wine_x86 wine-development main.exe.so