こんにちは。課題どこまで出来ましたか?
正直少し難航してます
逆汗分割はできましたか?
昨日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++は?
今確認したら入ってないのが確認できました...
完全に私のミスです お時間取らせてしまって申し訳ないです
まだダメですね... とりあえずもう少し調べてみます ありがとうございました