mozyのかきおき

mozyの読書感想文や思考置き場

30日でできるOS自作入門【13日目】

f:id:mozy_ok:20181130220523p:plain

概要

これはMozyの1人アドベントカレンダー 2018 の13日目の記事です。

adventar.org

書こうとした経緯は、こちら

mozy-ok.hatenablog.com

今日の内容

  • とにかくHLTしたいぞ

今日やったこと

  • HLTする関数を作った
    nackfun.nas
; naskfunc
; TAB=4

[FORMAT "WCOFF"]    ; オブジェクトファイルを作るためのモード
[BITS 32]

; オブジェクトファイルのための情報

[FILE "naskfunc.nas"]

    GLOBAL _io_hlt    ; このプログラムに含まれる関数

; 以下が実際の関数

[SECTION .text]    ; オブジェクトファイルはこれを書いてからプログラムを書くらしい

_io_hlt:    ; void io_hlt(void);
    HLT
    RET

bootpack.c

void io_hlt(void);

void HariMain(void)
{

fin:
    io_hlt(); /* これでnaskfunc.nasの io_hltが実行される*/
    goto fin;
}

ハマりポイント

特になし〜。順調だが、寒くて体調が悪くなってきた

知ったこと

アセンブラをこうやってC言語とかから呼び出すんだなという部分を初めて知った。