今日の8086 逆アセンブラ #ikebin
Haskellによる8086逆アセンブラ開発入門 - Qiita
とりあえずmov命令は全部実装した。はず。
コミットにも書いたけども、Segment Register to Register/MemoryとRegister/Memory to Segment Registerのテストと実装を逆にやってしまったので修正した。
Haskellにも8086アセンブラにも少しずつ慣れてきたかもしれない。
何度も書くが、
- 仕様書を読む
- ハンドアセンブルする
- 逆アセンブルする
- 逆アセンブル結果をHaskellで実装する
このパターンをごにょごにょしている。
今日やったこと #ikebin
Haskellによる8086逆アセンブラ開発入門 - Qiita
- mov命令の残りを実装
- disasmが命令の長さも返すように修正
- 複数の命令を含んだバイナリを渡すと逆アセンブル結果をリストで返す関数を実装(途中)
リスト内包表記を完全に忘れていたので、強引に再帰でやろうとしてなまら時間を浪費した感が…結局出来てないし…
とりあえず、8086、というかアセンブラには慣れたけど、Haskellにはまだ慣れていない。再帰とか、リスト内包表記とか、モナドや圏論まではまだまだ遠いぞ…