2015-07-01から1ヶ月間の記事一覧

QEMU(windows版)でmonitorを利用する。

忘れないようにメモ。qemuには、エミュレーションしているハードの状態を参照できるモニター機能が存在する。通常はGUIからCtrl-Alt-[1, 2, 3]で切り替えるとドキュメントにある。当方が利用したWindows版のQEMUだと、なぜかこのモニター機能がうまく利用で…

追記 NASMでの構造体の参照

気になって調べてみた。こっちのほうがシンプルに書ける気がする。 struc mytype mt_long: resd 1 mt_word: resw 1 mt_byte: resb 1 mt_str: resb 32 endstruc NASM - The Netwide Assembler あとは"mov ax,[mystruc+mytype.word]"のような形で利用する。

GAS(GNU Assembler)で構造体にアクセスする

環境はWindows7(32bit)&cygwinのgcc/gas(x86)で試した。".struct"で構造体を定義し、その後サイズ(item_length)を算出する。そして".bss"セクションに構造体名(item)でitem_length分メモリーを確保(".space")する。後は、レジスタにitemのアドレスを代入…

xv6をWindows環境(cygwin環境)で手軽にビルドする

OS

cygwinのgcc(binutil)だと出力可能なバイナリーフォーマットが原因で、自作OSのビルドが出来ないケースが多々ある。そこで、cygwinportsを利用しgccを導入することでこの問題を解決する。ついでに今回はxv6をビルドしてみた。cygwin & apt-cyg の導入までは…

参考になるx64アセンブラの情報

Assembly Programming on x86-64 Linux →linux上でx64(amd64)のアセンブラを利用したコードの紹介http://homepage1.nifty.com/herumi/prog/x64.html →呼び出し既約の解説

参考にできる64bit自作OSの例

ソースコードが公開されていると、わからないことを確認できるので助かる。 Programming a 64-bit Operating System →64bit OSの作成方法を説明している。アセンブラはNASMを使っている模様。 https://github.com/neri/op05 →国産64bit OSとして初期のころ有…

64bit OS(x64 Kernel)の自作のために(1)

前から気になっていたところ、以下Blogで実際に動くコード(x86->x64)が公開されていたので、BlogとOSDEVの記事を参考にしながら動かしてみた。ビルド環境はWindows7 with Cygwin(x86_64-pc-linux-gnu-gcc ver 4.8.2)このとき、はまったのがx64でのGDT(Glob…