我在Windows 7 64位上使用Flat Assembler。我試圖編譯一個簡單的程序,但它正在編譯爲一個16位程序。有些程序似乎編譯得很好,但經過一段時間尋找一個hello世界的例子後,程序無法運行。如何防止彙編程序編譯16位應用程序?
org 0x100
mov dx, msg ; the address of or message in dx
mov ah, 9 ; ah=9 - "print string" sub-function
int 0x21 ; call dos services
mov ah, 0x4c ; "terminate program" sub-function
int 0x21 ; call dos services
msg db 'Hello, World!', 0x0d, 0x0a, '$'
我應該怎麼做才能防止它編譯爲16位程序?
您將有先停止寫16位彙編代碼。然後使用'use32'指令。 –
FASM彙編程序可能具有32位格式的命令行標誌。如果你使用32位寄存器和32位代碼,它可能會有所幫助嗎?只是把它扔出去... – tom
@ tommycake50 - FASM根本沒有命令行標誌。它精確地編譯源代碼中的內容,並且相同的源代碼始終提供相同的二進制文件。 – johnfound