忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/11/22 (Fri) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2008/08/26 (Tue) / 編集
とりあえず、Makefileで引っかかったのでメモ

copyコマンドとdelコマンドはUNIXには存在しない
#COPY = copy
#DEL = del
COPY = cp
DEL = rm

Windowsのコピーコマンドはファイルの合併もできるらしいがUNIXのcpではできないので以下
#haribote.sys : asmhead.bin bootpack.hrb Makefile
# copy /B asmhead.bin+bootpack.hrb haribote.sys
haribote.sys : asmhead.bin bootpack.hrb Makefile
cat asmhead.bin bootpack.hrb > haribote.sys

runも書き換えなきゃならんらしいが、リモートログイン(CUI)したLinux上でqemuを使うつもりはないので試してはいない
#run :
# $(MAKE) img
# $(COPY) haribote.img ..¥z_tools¥qemu¥fdimage0.bin
# $(MAKE) -C ../z_tools/qemu
run :
../z_tools/make.exe img
qemu -m 32 -localtime -std-vga -fda haribote.img
run :
$(MAKE) img
qemu -m 32 -localtime -std-vga -fda haribote.img


パッチの作り方
diff -u だめなMakefile 正常なMakefile > パッチ.patch
patch -b パッチを当てたいMakefile パッチ.patch

でもって三日目からC言語が登場したわけだがこれがまたややこしいらしい、なんでもC言語で作成したプログラムを使うには以下のような手順を踏まなければならないらしい(緑字はOS自作入門著者の独自コマンド)
  1. cコンパイラを使ってCファイル(.c)からGASファイル(.gas)を作る
  2. なんでもgccはgas形式のアセンブラを前提として作られているのでgas形式のソースコードを出力してしまうらしい(←これはnaskでは読めない)
  3. gas2naskでGASファイル(.gas)からNASK(.nas)ファイルへ変換
  4. naskを使ってアセンブルしオブジェクト(.obj)作成
  5. obj2bimでオブジェクトファイルを連結したバイナリファイル(.bim)を作成
  6. ここまででとりあえずバイナリファイルは完成
  7. bim2hrbでOS固有の形式(.hrb)へ変換
  8. これでC言語の分の準備はOK
  9. copy(UNIXならcatなど)でブートローダと連結させて、OS完成(.sys)
  10. 最後にedimgでイメージ形式(.img)に変換
  11. ここまでくればqemuなどで実行できる
なんだか著者作のコマンドばっかりだな、、、


次回はC言語の関数として使えるアセンブラプログラムの書き方とからしい、あとポインタとかも登場して大変な事になりそうな感じ




う〜ん、『よくわかるアセンブラ』でも探しに行こうかなぁ
いやまぁここまで来たらそんな問題でもないか、、、

ちなみに、窓の方はなぜかqemuが動きません orz

拍手[0回]

PR
忍者ブログ [PR]