LC-3– tag –
-
C言語で作る小さなシステム
C言語でLC-3仮想マシンを自作する全12回まとめ: CPU、アセンブラ、デバッグ機能まで作る入門連載 | UNIX Cafe
LC-3VM:C言語で小さなCPUを動かす連載です このページは、C言語でLC-3仮想マシンを自作する全12回の連載まとめ記事です。 この記事で作るもの: LC-3の.objファイルを読み込み、命令を1つずつ実行するC言語製VM 2048.objやrogue.objをターミナル上で動かす... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第12回:最終章!.gitignoreやライセンスを整えてGitHubで正しく公開する方法) | UNIX Cafe
自作LC-3 VMをGitHubで公開できる形に整える 前回は、第10回までに作った観察機能を使って、小さいLC-3プログラムの動きを読みました。 --traceで命令の流れを見て、--profileで命令ごとの実行回数を数え、--breakや--dump-memoryでループ中の状態やメモリ... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第11回:16進数とアセンブリが繋がる瞬間!自作デバッガから覗く「コンピューターの秘密」)| UNIX Cafe
小さいLC-3プログラムをデバッグする 前回は、VMに--dump-registersと--dump-memoryを追加し、プログラム終了後のレジスタとメモリを確認できるようにしました。 第6回以降では、VMの中を観察するための機能を少しずつ増やしてきました。命令の流れを見る-... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第10回:–dump 機能実装!実行後のCPUとメモリの生データを総まとめ)| UNIX Cafe
レジスタとメモリをダンプして状態を見る 前回は、VMに--break x3002オプションを追加し、指定したアドレス値とPCの値が一致したときだけ止められるようにしました。 ブレークポイントで止まれるようになると、見たい場所まで一気に進められます。ただ、こ... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第9回:PC(プログラムカウンタ)を先読み!自作デバッガへの本格ステップ)| UNIX Cafe
ブレークポイントでPCが指定アドレスと一致したら止める 前回は、VMに--stepオプションを追加し、1命令実行するたびに停止してEnterで次へ進められるようにしました。 --stepは、Hello Worldのような短いLC-3プログラムを1命令ずつ確認するには便利です。... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第8回:–step オプションで時間を止める!1コマずつの実行制御)| UNIX Cafe
ステップ実行で1命令ずつ進める 前回は、VMに--profileオプションを追加し、実行した命令数の合計とopcodeごとの実行回数を数えられるようにしました。 プロファイル機能では、プログラム全体でどの命令が多く実行されたかを見られます。一方で、「次の命... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第7回:プロファイラを作ろう!各命令の実行回数を集計する機能)| UNIX Cafe
前回は、VMに--traceオプションを追加し、命令を1つ実行するたびにPC、命令word、opcode、TRAP名、レジスタ、条件フラグを表示できるようにしました。 第7回では、1命令ずつの詳しい観察から一歩進んで、プログラム全体でどの種類の命令がどれくらい実行さ... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第6回:–trace オプションでCPUの挙動を1命令ずつ覗き見よう)| UNIX Cafe
命令実行をトレースしてVMの動きを見る 前回は、Hello Worldが通るだけの小さいLC-3アセンブラをCで作り、hello.asmからhello-minias.objを生成しました。これで、VMに渡す.objを自分で作る流れまで確認できました。 第6回からは、VMの動きを観察する機能... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第5回:小さいLC-3アセンブラを作る)| UNIX Cafe
小さいLC-3アセンブラを作る 前回は、LC-3アセンブリでHello Worldを書き、既存のlc3asを使って.objファイルを作りました。さらに、printfで同じbyte列を直接書き出し、.objの中身も手作業に近い形で確認しました。 第5回では、前回lc3asが担当していた変... -
C言語で作る小さなシステム
C言語で始めるLC-3仮想マシン自作入門(第4回:LC-3アセンブリでHello Worldを書く)| UNIX Cafe
LC-3アセンブリでHello Worldを書く 前回までで、LC-3 VMは .obj ファイルを読み込み、命令を実行し、TRAPやメモリマップドI/Oを通じてUNIX端末ともやり取りできるようになりました。 ここからは、VMの内側を実装する話から少し視点を変えて、そのVMに渡す...
12
