『30日でできる! OS自作入門』を読んでいる。
書籍では作者さん自作のアセンブラが利用されているのだけど、これがどういうものなのかよくわからない。
なので、何か適当なもので代替することにした。これがどういうものなのか、やっぱりよくわからない。
というわけでつまった (つまっている) ことや調べたことどもをメモ。
RESB の使い方?
お手本 ($
-> ($-$$)
に置換したもの) の以下の部分を NASM でアセンブルしたら (記述通りの動きには思えるのだけど) 0x7dfeまでを0x00で埋め
たあと、残りの処理がなされたように見えた。
要するに、できたファイルがフロッピーのサイズを大分はみ出るものになってしまった。
RESB 0x7dfe-($-$$) ; 0x7dfeまでを0x00で埋める命令
DB 0x55, 0xaa
; 以下はブートセクタ以外の部分の記述
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432
0x7dfe-($-$$)
を 0x1fe-($-$$)
としたら動いたんだけど、これは解決になってるんだろうか、、?
list はこんな感じだった。
other:
は「ラベルがいるのかな?」っと思って書いたもの。けど特に意味をなしてなさそうだった。
(一部抜粋)
55 00000082 0A DB 0x0a ; 改行
56 00000083 00 DB 0
57
58 00000084 <res 7D7Ah> RESB 0x7dfe-($-$$) ; 0x7dfeまでを0x00で埋める命令
58 ****************** warning: uninitialized space declared in .text section: zeroing [-w+zeroing]
59
60 00007DFE 55AA DB 0x55, 0xaa
61
62 ; 以下はブートセクタ以外の部分の記述
63 other:
64 00007E00 F0FFFF0000000000 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
65 00007E08 <res 11F8h> RESB 4600
65 ****************** warning: uninitialized space declared in .text section: zeroing [-w+zeroing]
66 00009000 F0FFFF0000000000 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
67 00009008 <res 166BF8h> RESB 1469432
67 ****************** warning: uninitialized space declared in .text section: zeroing [-w+zeroing]
55 00000082 0A DB 0x0a ; 改行
56 00000083 00 DB 0
57
58 00000084 <res 17Ah> RESB 0x1fe-($-$$) ; 0x7dfeまでを0x00で埋める命令
58 ****************** warning: uninitialized space declared in .text section: zeroing [-w+zeroing]
59
60 000001FE 55AA DB 0x55, 0xaa
61
62 ; 以下はブートセクタ以外の部分の記述
63 other:
64 00000200 F0FFFF0000000000 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
65 00000208 <res 11F8h> RESB 4600
65 ****************** warning: uninitialized space declared in .text section: zeroing [-w+zeroing]
66 00001400 F0FFFF0000000000 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
67 00001408 <res 166BF8h> RESB 1469432
67 ****************** warning: uninitialized space declared in .text section: zeroing [-w+zeroing]
リンク