2011年7月31日 星期日

30天打造OS! 作業系統 自作入門 (30日でできる! OS自作入門) 第一天

書中範例程式碼用nasm編譯
第42行左右發生invalid operand type錯誤

42: RESB 0x1fe-$

因為nasm不支援這種運算
嘗試一陣子
總算找到可以代替$(dollar sign)的方法

1. 在程式碼起始點加入一個label aa
2. 在第42行加入一個label bb
3. 將第42行改寫成

42: bb RESB 0x1fe - (bb-aa)

4. 用nasm編譯即可產生.img檔案

2 則留言:

  1. RESB 0x1fe - ($-$$) 这种方法也能解决问题

    回覆刪除
    回覆
    1. 沒想到竟然有人回覆我,太感動了,謝謝~

      刪除