我在使用Windows vista x86的同時在FASM中做了一個簡單的應用程序。應用程序編譯並運行良好,沒有任何錯誤。FASM - x64與x86
然後,我將相同的確切源代碼(字面上相同的文件)移動到我的其他PC上運行Windows Vista的X64。編譯源代碼後,我收到錯誤。
當在x86上,我可以簡單地開始:
include "win32a.inc"
entry start
當在x64編譯我不得不使用類似下面的東西:
format PE GUI 4.0
include "win32a.inc"
entry start
另一個問題(我的主關注)是什麼時候在x86上我可以使用:
.if dword [var] = "1234"
;Do something here
.endif
不過,雖然在x64編譯相同的代碼,我得到「非法指令」與下面的行強調:
.if dword [var] = "1234"
是否有不同的方式去在x64這樣做呢?
另外,我如何編碼到兩個兼容的地方?我想,如果我在x86上編譯,那麼結果輸出將在x64上正常運行?
最後,這有可能與架構有關嗎?