アセンブリ– 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... -
自作VM開発記
【低レイヤ入門】C言語で作る自作VMを少しOSらしくする: 1文字コマンド判定 | UNIX Cafe
前回は、小さな自作VMにおいて、外見を少しだけ「入力待ち(プロンプト)」の状態に近づけました。 その前の段階では、host側の標準入力から1 byteを読み、読み込んだ値をそのまま画面に表示するだけでした。 SYSCALL 2 SYSCALL 0 HALT 前回の prompt-echo... -
C言語で作る小さなシステム
いちばんやさしい!OS自作超入門 学習メモまとめ|第3章・第4章・第7章のつまずき整理 | UNIX Cafe
書籍『いちばんやさしい!OS自作超入門』を読みながら、実際にコードを写経して動かした際の学習メモをまとめました。 この記事は書籍の内容を置き換えるものではなく、手元でコードを動かすときのつまずきやすいポイントを整理するための補助メモです。 ... -
自作VM開発記
【低レイヤ入門】C言語で作る自作VMを少しOSらしくする: プロンプト付き1文字echo | UNIX Cafe
前回は、小さな自作VMに「外から1文字を受け取る入口」を作りました。 それまでのプログラムは、MOVI R0, 65 のように、表示したい値をあらかじめ命令の中に書いていました。つまり、VMが表示している A は、プログラム内に固定で埋め込まれた値でした。 ... -
自作VM開発記
【低レイヤ入門】C言語で自作VMに入力系SYSCALLを追加して、1文字echoを動かす | UNIX Cafe
前回は、小さな自作VMを、少しだけ「本物のVM」らしい形に近づけました。 これまでは、実行対象の命令列を notes/vm.c 内に直接記述していました。単一の命令動作を確認する段階ではこの手法が有用でしたが、命令列を変更するたびにVM自体のソースコードを... -
自作VM開発記
【低レイヤ入門】C言語で自作VMに計算・比較・分岐・CALL/RETを追加する | UNIX Cafe
前回は、小さな自作VMにSTDI、INC、DEC、MOV、PUSH、POPを追加しました。 値をメモリへ書く、レジスタ同士でコピーする、スタックへ退避する、というところまで進みました。 ただし、この段階のVMは、まだ基本的には上から順番に命令を実行するだけです。 ... -
自作VM開発記
【低レイヤ入門】C言語で仮想マシン自作:アセンブリからVM実装への「目線の切り替え」を学ぶ | UNIX Cafe
先日から自作OSを作り始めました。 最終的には、自作CPUの上で自作OSを動かし、その上で自作シェルを動かして、最後には自作エディターまで開けるようにしたいです。 しかし、最初からすべてを作り込むのは規模が大きすぎます。そこでまずは、小さなVMをC... -
C言語で作る小さなシステム
仮想メモリ空間へ!『いちばんやさしい!OS自作超入門』第7章のつまずき解消ガイド | UNIX Cafe
前々回の第4章では、Simple OSの上でオリジナルコマンドやタイマー割り込みを動かす楽しさを味わいました。続く第5章・第6章でマルチタスクの土台を整え、いよいよ今回は書籍の大きな山場である「第7章:仮想メモリ編」へと突入します。 第6章までは...
12
