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

あなたは

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

アセンブラ入門内検索

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


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



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

トップ-> アセンブラ入門:8章.入出力-> 8-2.IN命令

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



8-2.IN命令

  IN命令は入出力デバイスの状態を読み出す命令である。
IN	DEST,SRC

   動作:SRCのI/Oポートに接続されているデバイスの状態を読み出す
  影響を受けるフラグ:なし
    DEST:EAX(80386以上) / AX / AL
    SRC :即値(8bit)、DX
  ポートのアドレス0000h〜00FFhにアクセスするときは、SRCに既値が利用できる。 すべてのポート(0000h〜FFFFh)にアクセスするにはDXレジスタを使わなくてはならない。 DESTはポートのサイズ(プログラマーが調べなくてはならない)によって、レジスタのサイズを 決める。

  コンピュータの画面は左上から横に1行ずつ描画し、最後に右下に至る。 そこまで来るとまた左上に戻る。これを繰り返すことで、画面が私たちに見える。 PC-9801(PC-9821)シリーズでは右下を書き終わり、左上に戻る瞬間に、A0hポートの データ(1バイト)の6bit目が1になる。これを利用して、右下に来るまで待つプログラムを 作ることができる。

WAIT_SYNC:
	in	al,0a0h
	test	al,00100000b	
	jne	WAIT_SYNC
なぜこんなことが必要かというと、VRAM(表示するグラフィックを格納するメモリー)に 書くタイミングを計らないと、見た目がちらついてしまうため。今はそんなことは気にしなくても 大丈夫。あくまでも昔の話・・・。


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