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

あなたは

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

アセンブラ入門内検索

目次
アセンブラトップ
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の世界〜


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



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

トップ-> アセンブラ入門:1章.基礎-> 1-2.セグメントとは

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



1-2.セグメントとは

  8086,80186,(V30),80286のアドレスバスは20bitです。アドレスバスとは、電話番号の 桁数のようなものです。10桁の電話番号では1010すなわち10,000,000,000個の電話を管理できることに なります。20bitですと220すなわち10進数では1,048,575(1メガ)まで管理できることになります。 16進数で表すと0x00000から0xFFFFFまでで、5桁となります。 しかし、データバスやレジスタは16bitであり、16進数で4桁しか覚えられません。電話番号を メモしなければならないのに、メモ用紙に8桁しか書くスペースがなく、残りの2桁が書けないのと同じ状態です。 そこでメモ用紙を2枚使用することになります。しかし2枚目に足りない2桁をメモすると、8桁メモできる スペースがあるのに残りの2桁しかメモしないのはもったいないです。

  そこで例えば、03-3123-4567をメモする場合に、1枚目に03-3123-45とメモし、2枚目に 0000-0067とメモし、これを2桁ずらして足します。そうすると03-3123-4567となります。 03-0000-00、3123-4567とメモしても同じです。「0」で埋めなくても、03-1111-11と 2012-3467としても同じです。

03-3123-45
+) 0000-0067

 03-3123-4567
03-0000-00
+) 3123-4567

 03-3123-4567
03-1111-11
+) 2012-3467

 03-3123-4567

  これをアドレスについても適用させます。12345hというアドレスを16bitレジスタ 2つで表すのに、1234hと0005hと記憶し、これを1桁ずらして足すことで、12345hと表すことが できます。これを「1234h:0005h」と表記します。「1000h:2345h」や「1111h:1235h」 も12345hを表します。

1234
+) 0005

 12345
10000
+) 2345

 12345
1111
+) 1235

 12345

  1234h:0005hと表したとき、上の4桁「1234h」をセグメント、下の4桁「0005h」を オフセットと呼びます。


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