by shigemk2

当面は技術的なことしか書かない

今日やったこと 前半 #ikebin

長らくEXEコンパイラをやっていて本業の8086を忘れかけていたので、思い立って出てみることにした。

主目的

逆アセンブラを作りながら機械語の基礎を勉強する(Haskellで)

http://qiita.com/7shi/items/026839b2bc193dbfb0cb

8086について

http://ja.wikipedia.org/wiki/Intel_8086

Intelの16ビットのCPUで第4次スパロボみたいな存在

この基礎にいろいろ継ぎ足していって現在のx86とかがある

いきなり64ビットをやるとかなり難しい

Haskellについて

Haskellをやるのが主目的ではないので、初歩的な機能のみを使って実装する

モナドとかアローとかは使わないよ

2進数

数字の数え方

0と1だけで構成されている

10進数は0123456789

10進数なので位がひとつ上がるごとに10倍

ゆえに、2進数は位がひとつ上がるごとに2倍

110(421) = 6

1100(8421)=12

1が立っている部分に相当する数を足す

再帰を追うコツ

  • 再帰を最後まで追わないで、一段階で仕様を考える
  • 一段階までうまくいけばあとは全部うまくいくはず

数学的帰納法

リンク

http://qiita.com/7shi/items/6887e7939c0168a0eb21

http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E4%BB%98%E6%95%B0%E5%80%A4%E8%A1%A8%E7%8F%BE

小並感

  • Haskellは難しい
  • 再帰は難しい
  • プログラミングは難しい
  • 8086を思い出すのが目的だと思っていたけど、新知識が登場して慌てた