仮想マシン– tag –
-
自作VM開発記
【低レイヤ入門】C言語で作る自作VMに入力バッファを追加する: Enterまでの文字をメモリに保存する | UNIX Cafe
前回は、小さな自作VM上で動く外部プログラムに、起動メッセージとhelp表示を追加しました。 boot-message.bin では、命令列の後ろに0終端文字列を置き、SYSCALL 1 でまとめて表示しました。起動時には Welcome to Handmade VM を表示し、h を入力するとhe... -
自作VM開発記
【低レイヤ入門】C言語で作る自作VMを少しOSらしくする: Welcome表示とhelp/qコマンド | UNIX Cafe
前回は、小さな自作VM上で動く外部プログラムに、入力を待ち続けるループを追加しました。 command-loop.bin では、まず > を表示し、そのあと1文字だけ入力を読みました。そして、読んだ文字が h なのか、q なのか、Enterやspaceなのか、それ以外なの... -
自作VM開発記
【低レイヤ入門】C言語で作る自作VMを少しOSらしくする: プロンプトへ戻る1文字コマンドループ | UNIX Cafe
前回は、小さな自作VM上で動く外部プログラムに、最初の「コマンドらしい反応」を実装しました。 それまでのプログラムは、入力された1文字をそのまま表示するだけでした。たとえば A を受け取ったら A を表示する、という確認です。 前回の one-char-comm... -
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をターミナル上で動かす... -
自作VM開発記
【低レイヤ入門】C言語で仮想マシン自作:命令追加とスタック操作、vm.c 整理まで進める | UNIX Cafe
前回は、小さな自作VMをCで作りながら、LDB命令を例に「アセンブリを書く人の目線」と「VMを作る人の目線」の違いを整理しました。 今回は、その続きです。 VMに命令を少しずつ追加して、メモリへの32bit書き込み、レジスタ操作、スタック操作まで進めまし... -
自作VM開発記
【低レイヤ入門】C言語で仮想マシン自作:アセンブリからVM実装への「目線の切り替え」を学ぶ | UNIX Cafe
先日から自作OSを作り始めました。 最終的には、自作CPUの上で自作OSを動かし、その上で自作シェルを動かして、最後には自作エディターまで開けるようにしたいです。 しかし、最初からすべてを作り込むのは規模が大きすぎます。そこでまずは、小さなVMをC... -
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ごとの実行回数を数えられるようにしました。 プロファイル機能では、プログラム全体でどの命令が多く実行されたかを見られます。一方で、「次の命...
12
