CPU > 命令セット > ASL

「CPU/命令セット/ASL」の編集履歴(バックアップ)一覧に戻る

CPU/命令セット/ASL - (2017/02/20 (月) 17:51:22) のソース

***ASL (Arithmetic Shift Left) [#k00c3964]
[算術左シフト]

全てのビットを左に 1 ビットシフトし、
シフト前の最上位ビットをキャリーに入れる。

16 ビットアキュームレータモード (m=0) の時、
16 ビット全てが 1 ビット左にシフトされる。

''フラグ変化''
 n-----zc
 
 n : 結果の最上位ビットの値
 z : 結果の値が 0 の時セット
 c : シフトする前のメモリの値の、最上位ビット (7 ビット目 か 15 ビット目) の値

''コード一覧''
|アドレッシングモード|文法|オペコード|バイト数|命令サイクル|注|h
|[[Accumulator>CPU/アドレッシングモード/Accumulator]]|ASL a|0A|1|2 ||
|[[Absolute>CPU/アドレッシングモード/Absolute]]|ASL addr|0E|3|6 | 1|
|[[Direct Page>CPU/アドレッシングモード/Direct Page]]|ASL dp|06|2|5 | 1,2|
|[[Absolute Indexed,X>CPU/アドレッシングモード/Absolute Indexed,X]]|ASL addr,X|1E|3|7 | 1|
|[[Direct Page Indexed,X>CPU/アドレッシングモード/Direct Page Indexed,X]]|ASL dp,X|16|2|6 | 1,2|

 1 : m=0 (16-bit メモリ/アキュームレータ) の時 2 サイクル増加
 2 : ダイレクトページレジスタの下位バイトが 0 でない場合 1 サイクル増加