働きたくない

5000兆円欲しい

「はじめて読む8086」のための環境整備

「はじめて読む8086」を購入した。 この本は、MS-DOSで実際に機械語を書いて動かすことで学習する形式を取る。

これを2019年で行うためには、勿論8086マシンはなかなか用意できないから(中古でPC98シリーズが安かったりするんだろうか?)、x86の16bit環境をエミュレートする必要がある。 そのような方法のうち、現時点で自分が確認できているのは以下2つ

  • i8086emu
  • FreeDOS + VirtualBox (よく理解できていないのだが、これは16bit環境なのか?という疑問がある)

確認していないもの

本当なら、(出来るのならば)NASMやGCCでのクロスコンパイルをすべきと思った。

これらの中から、自分は簡単そうなFreeDOSを選んだ。

FreeDOSVirtualBoxへのインストール

FreeDOSインストールのための参考 qiita.com qiita.com

FreeDOS、私は公式ガイドに従いインストールしたが、最初は "Invalid Opcode at 0FAE 1068..." というエラーが出てしまいインストールできなかった。 以下の掲示板に従い、インストール画面でInstall to Harddiskにカーソルを合わせる → Tab押下 → "/boot/syslinux/memdisk"のあとに" raw" と追加したら、インストールできた。

sourceforge.net

f:id:vita_brevis:20190302222318p:plain
FreeDOSVirtualBox仮想HDDへのインストール時画面。このあとInvalid Opcode at 0FAE 1068...となる
f:id:vita_brevis:20190302222329p:plain
エラー(Invalid Opcode at 0FAE 1068)

f:id:vita_brevis:20190302222326p:plain
インストール成功後のFreeDOS動作画面
f:id:vita_brevis:20190302222321p:plain
debugコマンド実行時