概要
本書は,情報処理技術者試験で使われている「CASL II」を題材に,アセンブリ言語のプログラミングの初歩を「豊富なイラスト」とサンプルプログラムを用いて初心者にもわかりやすく解説します。また,実際に使われているアセンブリ言語でのプログラミングについても実例を用いて解説します。CASL IIが動作する仮想コンピュータ「COMET II」の仕様もていねいに図解していますので,コンピュータ工学の最初の教科書としてもお読みいただけます。
こんな方におすすめ
- アセンブリ言語に興味のある人
- コンピュータの内部のしくみに興味のある人
- 情報工学をゼロから学びたい人
目次
第1部 アセンブリ言語とコンピュータ
第1章 コンピュータはどうやって動くのか
- 01-01 コンピュータはどうやって足し算しているの?
- 01-02 計算に使うデータはどこにあるの?
- 01-03 コンピュータに命令する方法は?
- 01-04 もっと人間に優しい言葉で命令するには?
- 01-05 コンピュータはどうやって仕事を管理するの?
第2章 アセンブリ言語の基本
- 02-01 COMET IIはどんな構成なの?
- 02-02 CASL IIプログラムはどうやって実行されるの?
- 02-03 フラグレジスタにはどんな役目があるの?
第3章 アセンブリ言語の高度な命令
- 03-01 インデックス修飾の活用
- 03-02 スタックの活用
- 03-03 サブルーチンの活用
- 03-04 外部装置への入出力
第2部 アセンブリ言語の習得 ~CASL II命令リファレンス~
第1章 CASL IIアセンブリ言語実習の準備
- 01-01 WCASL-IIの準備
- 01-02 WCASL-IIを使ってみよう
第2章 アセンブラ命令
第3章 データ転送命令
- LD(ロード命令)
- LAD(ロードアドレス命令)
- ST(ストア命令)
第4章 算術演算命令
- ADDA(算術加算命令)
- ADDL(論理加算命令)
- SUBA(算術減算命令)
- SUBL(論理減算命令)
第5章 ビット演算命令
- AND(論理積命令)
- OR(論理和命令)
- XOR(排他的論理和命令)
- SLA(算術左シフト命令)
- SRA(算術右シフト命令)
- SLL(論理左シフト命令)
- SRL(論理右シフト命令)
第6章 比較演算命令
第7章 分岐命令
- JUMP(無条件分岐命令)
- JMI(負分岐命令)
- JPL(正分岐命令)
- JZE(零分岐命令)
- JNZ(非零分岐命令)
- JOV(オーバーフロー分岐命令)
第8章 スタック操作
第9章 サブルーチンコール
第10章 マクロ命令
- IN(入力命令)
- OUT(出力命令)
- RPUSH(レジスタ退避命令)
- RPOP(レジスタ復元命令)
第3部 アセンブリ言語実用への扉
第1章 x86系CPUへの発展
- 01-01 Pentiumはどんなハードウェア構成なのか
- 01-02 Pentiumアセンブリ言語はどんな命令なのか
- 01-03 Pentiumアセンブリ言語のプログラム例
第2章 組み込み系CPUへの発展
- 02-01 PICはどんなハードウェア構成なのか
- 02-02 PICアセンブリ言語はどんな命令なのか
- 02-03 PICアセンブリ言語のプログラム例
サポート
ダウンロード
本書のサンプルファイルをダウンロードできます。
データは,圧縮ファイル形式でダウンロードできます。圧縮ファイルをダウンロードしていただき,適宜解凍してご利用ください。
正誤表
正誤表の内容について,電子版では修正済みです。
本書の掲載内容に下記の誤りがございました。読者の皆様,および関係者の方々にご迷惑をおかけしましたことをお詫び申し上げます。
(最終更新:2014年4月28日)
P.23 図13
図中の下のボックスは,正しくは「全加算」です。
P.92 図47(下段の3箇所)
P.135 図42中の2つの外部装置の左側
P.171 ページ下部の例
誤 |
ADDA GR0,LABEL1,GR2 |
正 |
ADDA GR0,LABEL1,GR1 |
P.171 ページ下部の例の解説図
図中の「LABEL1」の位置は、実際には1段下になります。
P.175 ページ下部の例の解説図
誤 |
32767を超えたのでOF=1 |
正 |
65535を超えたのでOF=1 |
P.176 ページ上部の例の解説図
誤 |
ADDL GR0,LABEL1,GR2 |
正 |
ADDL GR0,LABEL1,GR1 |
P.176 ページ上部の例の解説図
図中の「GR0」の下段のレジスタ名が記載されていませんが,正しくは「GR1」です。
P.176 ページ上部の例の解説図下のフキダシ
誤 |
演算結果が0~65525を超えておらず~
|
正 |
演算結果が0~65535を超えておらず~ |
P.181 ページ上部の例の解説図
誤 |
演算結果が32767を超えたのでOF=1 |
正 |
演算結果が0を下回ったのでOF=1 |
P.272
プログラム例の記述が誤っています。
誤 |
入力装置から入力した文字した文字列を、・・・ |
正 |
入力装置から入力した文字を、・・・ |