マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

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

AndroidでXPath

Android 2.2からXPathが使えるようになったので使ってみた。使うまでがめんどいけど、XmlPullParserより使いやすいと思う。以下のXMLを対象にXPathを使ってみた。あまり詳しく書かないけど、少しだけ解説を載せたあと、ソースコードを載せる <memo> <contents name="チラシの表">Hoge</text> <contents name="チラシの裏">Piyo</text> </memo> XPa…

RegisterView

Web版x86エミュレータのレジスタ表示機能を少し変える Web版x86エミュレータのアセンブラ機能作成中 あまり進んでない

Web版x86エミュレータのために

Web版x86エミュレータの入力にNASMが使えるといいなと思い、アセンブラを実装中。トークンへの分割はできつつある、目指せアセンブラ!以下に自作字句解析プログラムの出力結果を載せておく入力 MOV AX, 0x1000 ADD AX, 0x2000 end: JMP end DB "Hello World…

ラストストーリー

Amazonで注文したラストストーリーが予定通り発売日に届かず、待つことに。今日、明日と用事があるからその間に届いても遊ぶことができない。まぁ、のんびり遊べる日を待とう

Assembler

アセンブリ言語(nasm)で書かれたコードの字句解析 Web版x86エミュレータの機能追加 Android SDKをいじる Web版x86エミュレータの入力欄でアセンブリ言語を使えるようにするために、パーサを作成中。バイナリだけでもいいなら今すぐ公開するけど、それだけで…

とりあえずレジスタの値でも表示させておく

Web版のx86エミュレータにレジスタの値を表示させてみた。見た目は後で整える。後はステップ実行とブレークポイントを入れたい。あと今実行されている命令の表示とかできたらいいね

とりあえずブラウザで動かす

Google Web Toolkitを使い、今動く範囲のx86エミュレータをJavaScriptに変換した。x86のバイナリを16進数で表した文字列をテキストエリアに貼り付けてボタンを押して実行するようにしている。スクリーンショットはBIOS Functionで背景色を変えているところ。…

そういえばIMULって

IMULは同じオペコードでも2オペランドのやつと3オペランドのやつがあるようだが、どうやって切り替えてるんだろう?マニュアル見るとr/mがあるかないかの判断のようだが、r/mが存在しないってどういう状況だろう?わからん…

作り直し中

x86エミュレータの命令作り直し中 『ふつうのコンパイラをつくろう』を読む バグがあるうえに、命令によって作り初めの頃のコードと今のコードが混ざってたりするので、そろそろ作り直したいと思って踏み切って今に至っている。120命令ぐらい作り直した。あ…

読書

x86エミュレータを進める 「ふつうのコンパイラをつくろう」を読む Twitterクライアントのデバッグ 今日は、本を読んでる時間が長かった。最近、本を読むと気が散ることが多かったので、なんか珍しい。とりあえず12章まで読んだ。読み終わったら、x86のブー…

MessagePack for Java 0.4を使ってみる

すでに0.5の開発版がでているのだが、あえてここは0.4を使う。なぜなら、まだ0.5の使い方がわからないから!ただし、0.4も開発版である。使い方はhttp://d.hatena.ne.jp/viver/20101025/p1に載っている。コンパイル時にMessagePackが、実行時にMessagePackと…

LOOKAHEADを使ってみる

足し算だけじゃなくて他の演算も試したくなり、前回のプログラムを変更した。共通部分があるので、とりあえずLOOKAHEADを使ってChoice conflictを回避するようにした。LOOKAHEAD使わないとjavacc時にChoice conflictと表示されてしまう。そして、それを無視…

足し算

『普通のコンパイラをつくろう』を読みながらJavaCCで遊んでいる。本に載っているAdderをいじって、16進数も読み取れるようにしてみた。ついでに-符号もつけられるようにした。面白いな、これ。 options{ STATIC = false; UNICODE_INPUT = true; } PARSER_BE…

命令作り直し

命令にバグがありそうなので命令を作り直してます。というところ命令は配列に入れて、配列のopecode番目を実行としている。以前の方法と変わらず instructions[0x00] = new AddRM8R8(); instructions[0x01] = new AddRMXRX(); instructions[0x02] = new AddR…

x86エミュレータの命令作り直し

x86エミュレータの命令作り直し adc,add,and,xor,or,subを実装 命令以外にも作り直しがあったためJavaで800行ぐらい書いた。今日はそのぐらい

デバッグ

bochsでtrace-mem onしてアクセスしたメモリアドレスの確認 自作x86エミュレータでもアクセスしたメモリアドレスの確認(bochsと一致) Twitterクライアントを少し進める 『ふつうのコンパイラをつくろう』を少し読む 後輩の卒論のβ版をチェック x86エミュレー…

今週のお題「冬の楽しみ」

友達の家に行って鍋!食べるのもいいけど、具材を選んでるときが楽しいかもしれない。だいたい、いつも同じの入れるんだけどね

MacBook Air 11インチ欲しい!

欲しいね〜。当たるといいね〜。今年度、ノートPCを研究室に返却するから欲しいなぁ。これ貰えたらx86エミュレータや今作っているWebアプリケーションなどのソースコード移して開発をしたい。そして、それをネタにブログを書く!まぁ、1名にしか当たらない…

Twitterクライアント作成中 その10г

ほとんど止まってるけど、微妙に進んでます…今回はユーザ情報の欄に自分の最新発言を入れてみた。 あとこんな使い方できますてきなおさらい。ユーザの名前クリックすると、そのユーザのタイムラインを表示できる アイコンをクリックすると、そのユーザの情報…

命令増やす

x86エミュレータで実行できる命令を増やした ModRMの処理の作り直し完了 はりぼてOSの145万命令実行 LTRやCDQ、SETNZといった命令実装した。ModRMの処理の作り直しも終わり、ちょっと先に進む。まだまだ先は長い

ModRMの処理作り直し

x86エミュレータのデバッグ x86エミュレータのModRMの処理を作り直してる途中 ModRMやSIBに対する誤解があったため、下手に修正するより作り直したほうがいいと判断したので、作り直し。現在はりぼてOSを読み込んで140万命令ぐらい実行したところで止まって…

キーボードのエミュレート

x86エミュレータを進める x86エミュレータのデバッグ キーボードのエミュレート x86エミュレータを進めた。OSがI/Oポートでキーボードにデータを送り始めたので、キーボードのエミュレート。というかマウスを有効化するためにキーボードにアクセスしてるだけ…

x86エミュレータを進める x86エミュレータで実行するOSを変更 エミュレータを頑張ったぐらい。もっと頑張れたはず

OS変更

今までFedora(まだブートローダを抜けてないが…)で頑張ってきたが、16万命令実行したあたりで、文字列表示後の変化の無い画面に飽きてきた。なので『OS自作入門』の『はりぼてOS』を実行してみることにした。エミュレータに少しバグがあって進まなかったりし…

オーバーフローフラグ

すでに演算後のオーバーフローフラグの更新は行っていた。しかし、どうやら、オーバーフローの検出方法が駄目らしい。本来ならJLEでジャンプするところを、そのまま次の命令に進んでしまった。JLEの他の条件は問題なさそうなので、オーバーフローの検出が一…

x86エミュレータ

x86エミュレータを進める GDTとIDTを適当に実装 32bitモード時のデバッグ 今日は、x86エミュレータを進めた。BeagleBoardは出番がなかった。というかデバドラの動作確認をどうしたらいいのかがわからない。Androidについていた端末エミュレータを使ったけど…

u-boot

u-bootのブートスクリプト編集 Androidに自作デバドラを組み込む とあるエミュレータ開発開始 昨日のLinuxが起動しなくなったというのは、ブートスクリプトを編集することで回避できた。しかし、どこをいじったから良くなったのかがわからず…そもそも編集し…

サークル登録

薄い本を出すためにサークル登録した。あとはコミケに申し込む。どうなることやら http://c10029055.circle.ms/cr/CircleProfile.aspx

デバドラ

BeagleBoard-xMの上で動くAndroid用の簡単なデバドラを書いた 途中でLinuxがブートしなくなる SDカードを入れたときに光るLEDが光らないという自体に fdiskなどを使い何とかLEDが光るようになる しかしLinuxがブートしないまま Androidが起動しないまま1日…

薄い本

サークル登録 コミックマーケット80 申込書セットを購入 Twitterクライアントを進める いろいろ支払い Javaで100行ぐらい進める。それぐらい。今日もあまり進まなかった。残念