OS自作入門 4日目/30日(画面の出力)
OS自作入門 4日目/30日(画面の出力)
1.はじめに
4日目では、新規のアセンブリ命令及びソースコードの変更点ついて解説を行う。
4日目のコード自体は特に詰まるところはなし。
2.使用したアセンブラの命令
NASKの命令(30日本著者作成のアセンブラ) NASMの命令(今回使用のフリーのアセンブラ) において違いなし
命令 | 名前 | 内容 |
---|---|---|
CLI | clear interrupt flag | interrupt flagを0にする |
STI | set interrupt flag | interrupt flagを立てる |
PUSHFD | push flags double-word | flagをdouble-wordでプッシュする |
POPFD | pop flags double-word | flagをdouble-wordでポップする |
3.harib01f
編集箇所は下記の通り
変更前 | 変更後 | 内容 |
---|---|---|
[FORMAT "WCOFF"] | 削除 | |
[INSTRSET "i486p"] | 削除 | |
[BITS 32] | 削除 | |
[FILE "naskfunc.nas"] | 削除 | |
[SECTION .text] | section .textに記載を変更 |
解決できていない疑問点
アセンブリで記述した関数をC言語で呼ぶ出す場合、アセンブリ側の関数は、先頭に_を記載しなければいけないが、記載をするとエラーを吐く。
下記のエラーの内容は、io_hlt
は定義されていないである。この際のアセンブリ側の関数名は_io_hlt
である。
undefined reference to `io_hlt' (略)
アセンブリ側の関数名の先頭から_を削除することで解消する。
この問題については、解決次第追記予定。