Skip to content

Latest commit

 

History

History
119 lines (71 loc) · 3.35 KB

2022-04-02.md

File metadata and controls

119 lines (71 loc) · 3.35 KB

2022-04-02

こんにちは。課題どこまで出来ましたか?

正直少し難航してます

逆汗分割はできましたか?

昨日VS2017がなくてインストールしてそのままですね...

katahiromz/python-asm-parse に 00-asm-parse-02.py を追加しました。

コードのパターンマッチを行って一致するかどうか判定する関数 code_match が追加されています。

unittest関数を見てみましょう。

この辺、読めますか? REG0は未知のレジスタを表しています。

はい

IMM32!ImmGetContext.asm.txtに00-asm-parse-02.pyを施すと。。。

次のような出力が得られますね:

--- print_blocks ---
def IMM32!ImmGetContext(ARGV[1])
{
// Block #0 (type:jcc, come_from:[-1], go_to:[3, 1], label:IMM32!ImmGetContext)
IMM32!ImmGetContext:
push ebp;
ebp = esp;
['stack', 'cmp', 'dword ptr [ebp+8]', '0']
['jcc', 'je', 'label2']

// Block #1 (type:join, come_from:[0], go_to:[2], label:label0)
label0:
push 2;
push dword ptr [ebp+8];
['call', 'call', 'IMM32!ImmGetSaveContext']
...

simplify_labels関数でラベルを単純化しています。

split_to_blocks関数でコードを基本ブロックに分割しています。

今日はここまでにします。課題やっといて下さい。

わかりました あと、Hello16のビルドに躓いています

Hello16はVisual C++のコマンドプロンプトからbuild-msvc.cmdを実行するんだけど、環境依存だから多少build-msvc.cmdを修正する必要があるかもしれない。

「rem」はバッチファイルのコメントです。

あ、Visual C++なんですね

Visual Studioの中にオプションのVisual C++があるイメージかな。

因みに現在はMSBuildでプロジェクトファイルが見つからないって言われてますね

Visual Studioの中にもオプションのCMakeがあるかも。

確かによく見たらcmakeがエラー出てますね

XPで動作するように設定されてます。

XPなんですね... cmake入れたらとりあえず近づいた感じがします やっぱりXPとそうじゃないとでエラーが出てるのでそこを頑張って直します

インストールされてるXPツールセットを使わないといけない。

何のCMakeを使っていますか?

VS2017のCMakeです

インストールされているXPツールセットは何ですか?

入れた記憶がないので入ってないと思います

VSのオプションです。

C++に関するWindows XP サポート これですかね?

それです。

どうやらまた別のエラーが出ているみたいではあります

CMAKE_CXX_COMPILERがない、っていうエラーですね

VSのプロンプトを使うんだよ。普通のコマンドプロンプトじゃないよ。

ちゃんとVS 2017用を使ってるんですが...

x86とx64の違いはわかる?

CPUのアーキテクチャの違いで

VSがx86ならプロジェクトもx86になります

ダウンロードしたWin2k3はx86だからx86使うことになるね。

Visual C++は?

今確認したら入ってないのが確認できました...

完全に私のミスです お時間取らせてしまって申し訳ないです

まだダメですね... とりあえずもう少し調べてみます ありがとうございました


戻る | 次へ