這是 80x86 汇编语言程序设计教程的範例程式,書中的版本有點錯誤, 我做了一點修正。
我自然不熟悉 masm, 通常我的開發環境都是 linux。會使用 masm 來測試這個程式, 純粹是好玩。我已經有了 gas, nasm 的進入保護模式的版本, 想再補上 masm。
如何使用 masm 5.0 讓我傷透腦筋, masm 5.0 可以在 windows xp 執行, 卻不能在 windows 8 執行, 我得在 windows xp 使用 masm, 並把執行檔想辦法傳到 linux/qemu 上, 繞了一大圈總算搞定。
組譯完成後的是一個 dos exe 檔案, 我在 qemu/dos 上測試, 沒問題, 保險起見, 又在真實機器上以 dos 為開機片再測試過, 真的可以正確執行。
我自己沒試過 DOSBOX 去跑MASM 只是給你參考一下
回覆刪除但是曾經看過人家用DOSBOX under Vista 下面跑 Legacy BIOS compiler 會用到MASM 6.15 之類的
http://www.ansmachine.net/2013/12/masm-using-dos-box-in-windows-8.html
謝謝,
回覆刪除不過我建議還是用 qemu 之類的軟體, 我之前吃過 dosbox 的虧, dosbox 可以把錯誤的程式執行的很正常, 結果我用真實機器執行該程式是完全不正確的。
這也是我為什麼堅持要在真實機器跑過一次的原因。
不知道你的錯誤程式 可以執行得很正常是怎樣的回事
回覆刪除我是說可以不用另外用XP 直接用MASM 在DOSBOX 下編譯
然後程式還是要在真實機器跑過的!
我大膽猜測你的問題是 因為DOSBOX 它只是模擬所以可能沒有正確做過某些初始化
導致程式在DOSBOX 下很正常 但是到真實狀況下不正常
如果是這樣情形 應該是用的時候心理就要預期才是
古早以前就連HW Emulator 都有聽過有人抱怨跟實際的MCU 不一樣
因為某些 實際上的 IO 驅動能力不一樣呀! 如果對細節不注意很容易陷入這種問題
如果不是就當作我胡說八道吧!
是的, 程式無法在真實機器上執行應該是這樣的問題。
回覆刪除而 masm 應該是可以在 dosbox 直接使用。