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

あなたは

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

アセンブラ入門内検索

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


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



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

トップ-> アセンブラ入門:12章.卒業試験-> 12-11.シャープ

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



12-11.シャープ

ソースファイル
Sharp.cpp

定義
void CGraphDoc::TranSharpAsm(LPSTR pDIB, LPSTR pOut, DWORD width, DWORD height)

定義済み変数
  • pDIB・・・・・画像データのアドレス(32bits)
  • pOut・・・・・変換後の画像データの格納アドレス(32bits)
  • width・・・・・画像の横幅(32bits)
  • height・・・・画像の高さ(32bits)

機能
画像を鮮鋭化する

解説
  ぼやけた画像をくっきりさせる手法である。シャープ化にもいくつかのアルゴリズムが 知られているが、今回はその中でも最も簡単な方法を紹介する。
  • 計算したい座標の輝度を5倍する。
  • その値から、その点の上下左右の各点の輝度を引く
  • 計算結果をpOutの座標(1点のみ)に格納する
  ただし、計算したい点のまわりに点が無い場合は、自分自身を5倍ではなく、適当な 倍率にする。すなわち計算したい点が一番左下の場合は、自分自身を3倍し、右、上の 点の輝度を引く。

注意
  計算後の画像データは、pOutに格納することに注意
  計算は、16bitsレジスタ以上で行わないといけないことに注意


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