あなたは
人目のアセンブラの受講生です。 |
アセンブラ入門内検索
アセンブラトップ
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の世界〜
このページの先頭に戻る
トップページに戻る
このページの先頭に戻る
トップページに戻る
|
前の章へ :
トップへ :
卒業試験へ
- 11-1.レジスタの型変換(キャスト)とは
高級言語では1バイトの変数を2バイト(short)や4バイト(long)などに拡張することができる。
これを型変換(キャスト)という。アセンブラの世界でも、レジスタに限って型変換(キャスト)を
行うことができる。変数は実メモリーに容量を確保するために拡張できない。アセンブラででは、
例えばALレジスタをAXレジスタに拡張する場合、符号なし整数ではレジスタの上位AHを0にして、
以降の計算をALではなく、AXレジスタを使うだけでできる。
mov al,0F0h
add al, 50h
; この場合、桁が足りなくなってしまう。そこで次のようにする
mov al,0F0h
mov ah,0
add ax,50h
; この例では ah=0 にし、以降の計算(ADD命令)をAXで行うことで、型変換している
|
しかし、符号付き整数の場合同じようなことをやると、負数の場合値がおかしくなる。
mov al,-1
add ah, 0
; AX = +FFhになってしまい、AX=-1ではない
|
そこで、符号付き整数の場合は次の命令を使用する。
CBW
動作:ALレジスタを符号付き整数としてAXに型変換する(8bit→16bit)
8086以上のCPUで使用可
CWD
動作:AXレジスタを符号付き整数としてDX:AXに型変換する(16bit→32bit)
8086以上のCPUで使用可
CWDE
動作:AXレジスタを符号付き整数としてEAXに型変換する(16bit→32bit)
80386以上のCPUで使用可
CDQ
動作:EAXレジスタを符号付き整数としてEDX:EAXに型変換する(32bit→64bit)
80386以上のCPUで使用可
|
使用例
mov al,-5
cbw
; この状態で、AX=-5となる。
|
前の章へ :
トップへ :
卒業試験へ
|