Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

VB.NETで仮想CPUを作ろう (7) - ADD命令実装

VB.NETで学ぶ機械語の基礎 第7回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/09/11 14:00

本稿では、VB.NETを利用し、簡単な機械語で動く仮想CPUを作ることでバイナリプログラミングを満喫します。実際の業務で直接使えるケースは少ないと思いますが、デバッグやプログラミングの地力向上に役立つでしょう。今回はADD命令を実装する事によりCPUの理解を深めます。

目次

はじめに

 この連載ではVB.NETの初歩的な記法だけを使って、簡単な機械語で動く仮想CPUの実装法を解説します(※CPUにもいろいろありますが、この記事ではIntel社が製造しているCPUを対象とします)。その過程を通じて、初心者でもバイナリプログラミングが楽しめることと、バイナリプログラミングの魅力を伝えたいと思っています。

 今回はADD命令の実装を通じてCPUの理解を深めます。

これまでの連載

下準備

 前回の実装を拡張していきますので、あらかじめ前回までの部分の実装を済ませておいてください。後は専門用語とCPU構造の確認のため、前回用意した3つのIntel社のマニュアルをすぐ読める状態にしてください。

 それに加えて、『中巻 B: 命令セット・リファレンス N-Z』(PDF)のA-6とA-7ページを印刷しておくことをお勧めします。絶対に必要なことではありませんが、この表をあらかじめ印刷しておき、その紙を参照しながら実装作業をすると効率が良くなります。

前置き

 まずは、四則演算について説明します。機械語で四則演算をするには、ADD(加算)、SUB(減算)、MUL(乗算)、DIV(除算)の四個の命令が用意されています。今後の連載では、この四個の命令を実装していきます。

 今回はADD命令を実装していきます。

※注
 この四個の命令以外にも、符号を考慮する命令、浮動小数点演算専用の命令など色々存在しますが、説明を簡易にするために、断りがない限り本稿で四則演算と言えばこの四個の命令を指すものとします。

ADD命令実装の大まかな流れ

 ADD命令を実装するには、バイナリから命令を判別するためのSearchOpeCodeMapメソッドと、実行部分を実装したExecuteCommandメソッドに、少し変更を加え、ADD命令そのものを実装するためにAddメソッドを追加します。そして最後に、IntelCpuクラスの利便性を良くするための工夫をします。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • インドリ(インドリ)

    分析・設計・実装なんでもありのフリーエンジニア。 ブログ「無差別に技術をついばむ鳥(http://indori.blog32.fc2.com/)」の作者です。 アドバイザーをしたり、システム開発したり、情報処理技術を研究したりと色々しています。 座右の銘は温故知新で、新旧関係なく必要だと考えた...

バックナンバー

連載:VB.NETで学ぶ機械語の基礎

もっと読む

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5