reading-books
  • Introduction
  • Computer Systems
    • はじめて読むマシン語
    • プロセッサを支える技術
    • オペレーティングシステム入門
  • Architecture
    • データ指向アプリケーションデザイン
    • Web API The Good Parts
  • Code Reading
    • MINCSコードリーディング
  • In Progress
    • Goによる並行処理
    • ビッグデータを支える技術
Powered by GitBook
On this page
  • 概要
  • 本
  • かかった時間
  • 読む前の状態
  • 読む前後の変化
  • 感想
  • 読書メモ
  • はじめて読むマシン語

Was this helpful?

  1. Computer Systems

はじめて読むマシン語

概要

本

  • はじめて読むマシン語

かかった時間

  • 4 時間

読む前の状態

  • ???

読む前後の変化

  • 計算機の基本的な仕組みがわかる良い本だと思う

感想

  • 8ビットCPUをベースにした内容で、シンプルにコンピュータ・アーキテクチャの基本がまとまっている

  • CPUのバスはそんなものもあったなぁと復習になった

読書メモ

はじめて読むマシン語

  • モニタプログラム

    • マシン語レベルでコンピュータの基本的な操作を行う機能を持ったプログラム

      • メモリに書き込まれているデータを見る

      • メモリに任意のデータを書き込む

      • メモリに書き込まれているマシン語のプログラムを実行する

コマンド名

説明

Dコマンド

メモリの内容を見る(Dump)コマンド

Sコマンド

メモリにデータを書き込む(substitute)コマンド

Gコマンド

任意のアドレス(番地)からプログラムを実行させるコマンド

メモリの基礎

分類

説明

アドレス

メモリ個々につけられているアドレス

バイト

8ビット=1バイト.8ビットのマイクロコンピュータではメモリの基本的な単位

ビット

コンピュータが取り扱うすべてのデータの最小単位

64キロバイトメモリであれば、64 * 1024 = 65536 バイトを扱うことができる

一般的な 8 ビットCPUは

  • アドレス:16ビット(=2バイト)

  • データ:8ビット(=1バイト)

で動作している。

コンピュータに直接命令できるのはマシン語だけ

BASICで書いたプログラムが実行できるのはコンピュータがBASICインタプリタというマシン語で作成されたプログラムを実行中であるから

  • BASICインタプリタ

    • BASICの文法に従って書かれたユーザプログラムを解読して、自分自身で用意しているマシン語プログラムに置き換える作業を1行ずつ実施

    • 置き換えたマシン語を実行する機能を持つ

  • メモリ上にロードされているマシン語プログラムは、00(16)~FF(16)の間の数値の羅列

    • これらの数値が以下を表現する

      • コンピュータに対する各種命令

      • アドレス

      • データとしての数値

コンピュータのシステム構成

メモリのRead,Write

8ビットCPUには16本のアドレスバスと8本のデータバスと呼ばれるデータ線が接続されている

  • CPUはメモリをRead,Write

    • 64Kバイトのメモリの中から任意の1バイトを選択するための16ビットのアドレスデータをアドレスバス上に出力

    • 16ビットの組み合わせに該当する1バイトのメモリが選択される

    • 選択された1バイトのメモリは、データバスと接続された状態になる

    • Readの状態になれば、データバス上に出力されているメモリの内容をCPUのレジスタに取り込む

    • Writeであれば、CPUのレジスタにセットされているデータをデータバスに出力して、その1バイトのメモリに書き込ませたりする

    • Read,Writeは常に1バイト単位(8ビット)で行われる

メモリの種類

  • メインメモリ

    • CPUが直接Read,Writeすることができる64Kバイトのアドレス空間にあるメモリ

      • ROM

        • マスクROM

          • どんな手段を使っても書き換えることができない

        • PROM(Programable ROM)

          • 専用のPROM書き込み器で消去することが可能

          • 新しくプログラムを書き込むことが可能

      • RAM

    • CPUからすればROMもRAMもどちらも違いはない

  • バンク切り換え方式

    • 複数のバンクメモリを場合場合で選択する

    • 同一メモリエリアにある複数のバンクは、ある時点ではただひとつのみが生きている

    • バンク切り換えによって、全体が64Kバイト以上のメモリ空間が存在するように見せることが可能

      • 単一のメモリは64Kバイト

    • 切り換えは、ソフトウェアコントロールが取られている

      • 実行するプログラムの中でバンク切り換えを実施

      • プログラムの中でコマンドを実行し、ハードウェア的なスイッチを動作させる

I/Oのメカニズム

  • 入出力するとは、データバスに周辺装置のデータや信号を接続するということ

  • その接点がI/Oポート。入出力ポート。

  • それぞれのポートを介して「8ビットデータ」や「ステータス信号」をやりとりする

  • ポート数は256まで設けることが可能

バスの概念

  • バスの種類

    • アドレスバス

    • データバス

  • CPUから延びるバスラインに、メモリやI/Oやその他必要なものが適当にぶらさがっている

  • アドレスバスやデータバスは必要に応じて必要なデータがのせられている

ニーモニックとアセンブリ言語

  • ニーモニック

    • 機械語の1命令を表したもの

  • アセンブリ言語

    • ニーモニックを使ってプログラミング言語の体系にまとめたもの

  • オブジェクトプログラム

    • 16進数で表されたマシン語のコード

CPU

  • レジスタ

    • メインレジスタ

      • A,B,C,D,E,H,L

        • Aレジスタはアキュームレータ

          • 演算が可能な唯一のレジスタ

      • フラグレジスタ

        • 各種のフラグの状態を示すために使われているレジスタ

      • 裏レジスタ群

      • 専用レジスタ群

        • スタックポインタ

        • プログラムカウンタ

          • 16ビットのレジスタ

          • 次に実行しなければならないプログラムのメモリアドレスを保持

命令

  • 8ビットロード命令

    • メインレジスタの8ビットの各レジスタに関する命令

    • 各レジスタ間で行う1バイト単位のデータのやり取りを行う命令群

  • 8ビット算術演算命令

    • ALUが実施

  • フラグ

    • サイン

    • ゼロ

    • キャリー

  • プログラムカウンタを強制的に制御して、プログラムの流れを変える方法

    • ジャンプ命令

    • コール命令

    • リターン命令

    • 割り込み

  • スタック

    • サブルーチンコールなどに用いられる

    • 各レジスタの内容を一時的にメモリへ退避

  • 16ビットロード命令

  • 入出力命令

PreviousComputer SystemsNextプロセッサを支える技術

Last updated 5 years ago

Was this helpful?