トップ->アセンブラ入門

あなたは

人目のアセンブラの受講生です。

アセンブラ入門内検索

目次
アセンブラトップ
0. はじめに

1. 基礎
   1. レジスタとは
   2. セグメントとは

2. MOV命令
   1. MOV命令
   2. コンパイル
   3. 即値の転送
   4. メモリーへの転送
   5. データ定義疑似命令
   6. 練習問題

3. 算術演算
   1. 符号なし演算と符号付き演算
   2. 足し算
   3. 練習問題
   4. フラグ
   5. 引き算
   6. かけ算
   7. わり算
   8. INC,DEC

4. 分岐
   1. 無条件分離
   2. 比較命令
   3. 条件分離
   4. 練習問題
   5. ループ
   6. サブルーチン
   7. スタックとは
   8. PUSH,POP
   9. 練習問題

5. 論理演算
   1. AND命令
   2. OR命令
   3. XOR命令
   4. NOT命令
   5. NEG命令
   6. TEST命令
   7. 練習問題

6. シフト演算
   1. シフト
   2. ローテート
   3. 練習問題1
   4. 練習問題2

7. ストリング命令
   1. ストリング命令とは
   2. MOVS?
   3. REP
   4. DFの設定
   5. LODS?
   6. STOS?
   7. SCAS?
   8. CMPS?
   9 .練習問題

8. 入出力
   1. 概要
   2. IN命令
   3. OUT命令
   4. INS,OUTS命令

9. その他
   1. LEA
   2. XCHG
   3. NOP

10. 割り込み
   1. 割り込みとは
   2. ソフトウェア割り込み
   3. ハードウェア割り込み
   4. 割り込みベクター
   5. 割り込み処理の作り方
   6. 練習問題

11. レジスタの型変換(キャスト)

12. 卒業試験
   1. 卒業試験
   2. 画像データの格納形式
   3. インラインアセンブラ
   4. ネガポジ反転
   5. 明るくする、暗くする
   6. グレースケール
   7. 二値化
   8. 上下反転、左右反転
   9. 4分割
   10. モザイク
   11. シャープ
   12. ぼかし
   13. エンボス
   14. ディザ拡散
   15. 鉛筆を置いてください

13. 終わりに

文字コード

アセンブラ 〜MS-DOSの世界〜


・ このページの先頭に戻る
・ トップページに戻る



・ このページの先頭に戻る
・ トップページに戻る

トップ-> アセンブラ入門:はじめに

←前ページへ : トップへ : 次ページへ→



はじめに



  巷では完全にMS-Windowsの天下ですね。AppleもiMacでがんばってはいますが。そんな 世の中にアセンブリ言語を学ぼうという人はほとんどいないでしょうね。よく人から 「アセンブラなんて使うの?」なんてことを言われます。答えは「Yes」 であり、「No」でもあります。

  趣味でプログラミングをする人でアセンブラをやる人は、現在はほとんどいないでしょう。 世の中のパソコンが進歩したからです。昔のパソコンはメモリーも少なく、処理も遅かった ので、何かの処理を速くやりたい場合や、ドライバーなどの常駐プログラムを作る場合は アセンブラが主流だったのです。

  しかし、技術の進歩は速いもので、メモリーは膨大に増え、処理速度も速くなってきたので、 そんなことを考えてプログラムを作るより、機能をあげたほうがいいと考えられているからです。 では、アセンブラは最近は必要なくなったのでしょうか? 今回の質問の答えはNo!です。

  アセンブラとはコンピュータの命令1つ(2進数の数字)を、人間が理解しやすくしたもので、 アセンブラの命令1つがマシン語の1つに対応しています。C言語などの高級言語は、 高級言語の命令1つは、マシン語の命令が複数集まってできています。例えば、C言語 でディスプレイに文字を表示するという命令や、文字を入力する命令は、誰かがマシン語で あらかじめ作ってくれて、C言語のプログラマーは、それらを組み合わせているだけなのです。

  ディスプレイやキーボードは古くからあるデバイス(装置)なので、これを操作する マシン語のプログラムはC言語のコンパイラーを買った時に標準でついてきます。しかし、 新しいデバイス(装置)を作った場合、これを操作するプログラムはC言語にはないので、 誰かが作らなければなりません。何で作るのでしょう? C言語には用意されていないので、 C言語では作れません。もちろん他の高級言語にも用意されていないので、アセンブラで 書くしかないのです。したがって、趣味で使う人は少なくなっても、デバイスメーカーは アセンブラなくしては、製品の開発ができないのです。

  もう少しわかりやすい例を出します。IntelはPentiumというCPUを作りました。 その次にMMX-Pentiumというのを作りました。MMXとは「Multi Media  Extention Technology」の略で、マルチメディアを扱うのに便利な新しい 命令を数百増やしたCPUです。CPU自体の命令を増やしても使わなくては仕方がありません。 C言語でそのMMX命令を使うためには、アセンブラでC言語用の命令を作らなければなりません。 このような観点からアセンブラは無くてはならない言語です。

  また、パソコンが進化してきたと言っても、まだまだ小さいコンピュータは使われています。 例えば、洗濯機や冷蔵庫、炊飯器にカメラさらにはテレビやそのリモコンまで。 電気や電池を必要とするもののほとんどにコンピュータは使われています。 しかし、それらは値段が高くては誰も買ってくれないので、必要最小限のコンピュータしか 使いません。そうするとPentiumなんて使うわけにはいきません。せいぜい4bitCPUとかです。 当然、メモリーも必要最小限です。少ないメモリー、遅いCPUでプログラムを書くのに、 高級言語なんて使えません。やはりアセンブラの登場と言うことになります。

  このように趣味でアセンブラをやる人は少なくなりましたが、この世の中には 必要な言語です。


  ここで、アセンブラの特徴(?)を紹介します。

  • コンピュータの仕組みを学ぶにはアセンブラが1番
  • 高級言語は裏で何しているかわからん!!
  • 高級言語はバカな処理をすることがある!!
  • CPUが変わると命令も変わるが、基本は一緒
  • パズル好きな人向け
  • 「この世で信用できるのは自分だけ!!」という人向け


←前ページへ : トップへ : 次ページへ→