« Ichigojam マシン語で LED ピカピカ | トップページ | Ichigojam マシン語デバッグ術 »

Ichigojam 用逆アセンブラ 印刷機能付き

 逆アセンブラのツール開発が進みました

ダウンロード - disasm_for_ichigojam_1_0_2.zip

 変更点 … 印刷機能と印刷プレビュー機能を追加

 印刷プレビューはプリンタの設定はデフォルト以外変更できません。用紙サイズの変更などをした結果を印刷プレビューで見たい場合はプリンタについてるユーティリティを使ってください。

 ここからは VisualStudio の話題となります。非常に参考になったのは dobon.net というサイト。印刷プレビューについては、

  1. PrintPreviewDialog オブジェクトを生成して
  2. printDocument オブジェクトを生成して
  3. printPage イベントハンドラで印刷描画を実装する

という手順で実装できました。プレビューに使ったprintPageイベントハンドラはそのまま印刷ダイアログの中で再利用できます。印刷プレビューダイアログはとても簡単に表示できるように作られていました。

 肝心の PrintPage ハンドラの中身はというと、ウィンドウ画面を描画するのと同じことを紙の上でDrawStringとやるだけでした。marginBounds.Top/Bottom/Left/Right で囲まれた座標空間の中で DrawString して文字列を置いていく作業は、きちんと考えるとなかなか大変なことをしています。画面上の描画ははみ出ないように書くのに対して、印刷物の描画ははみ出たら次のページに続きを描画する、という管変え方が必要になります。

 ですから PringPage ハンドラは1ページごとに呼び出されて次のページで呼び出される必要があるかどうか自己判断しなきゃいけないようなのです。それで e.HasMorePages = True といった代入式を最後に書くことになります。

 IYN はこの dobon.net のサイト管理者が作ったアルゴリズムを1ページに3列繰り返すことによって、番地の列、マシン語の列、ニーモニックの列をそれぞれ印刷することに成功しました。

 アセンブラの解析でも開発でも、紙に印刷して好きにメモを書き込んで使うことは頻繁に発生するので、逆アセンブラに印刷機能がついてることは利便性がかなり高いと思います。

注意: 開発は VS2015 で行ったので、.NET Framework はバージョン4.6に依存していると思ったのですが、dumpbinで調べてみるとバージョン2.0依存になっていました。アプリを実行できないという方は、両方のバージョンの.NET Frameworkのインストールをお試しください。

« Ichigojam マシン語で LED ピカピカ | トップページ | Ichigojam マシン語デバッグ術 »

電子回路工作」カテゴリの記事

コメント

この記事へのコメントは終了しました。

2022年3月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ