アセンブリ言語の命令、RLF命令。
RLF命令の解説。
書式;RLF f,d
fは、汎用レジスタアドレス 0~127(0x00~0x7F)、または、ラベル。
dは、結果の上書き先が、ワーキングレジスタか、汎用レジスタの選択。
動作; C f C f
0 10010110 ➡ 1 00101100
Cと汎用レジスタの内容のビットを左に1回シフトし、dで指定されたレジスタに上書き。
C;影響する、例を参照。
DC;影響しない
Z;影響しない
例;
1. 汎用レジスタ番地;0x30とする。
W 0x65 //命令実行前の値
0b01100101 //2進数表記
f 0x96 //命令実行前の値(0x30番地の汎用レジスタの内容)
0b10010110 //2進数表記
C 0 //ステータスレジスタの値
d 0 //書き込み先のレジスタ指定
RLF 0x30,0 //命令実行
0 10010110 ➡ 1 00101100 //Cの内容がfの0ビットにはいり、fの各ビットが左にずれて、fの一番左のビットの内容がCにはいる。
W 0x2C //命令実行後の値、dが0だから、こちらに上書き。
f 0x96 //命令実行後の値、こちらは、変化なし。
Z➡1。 //ステータスレジスタの値
2. 汎用レジスタ番地;0x30(ラベル;Data)とする。
W 0x6A //命令実行前の値
0b01101010 //2進数表記
f 0x16 //命令実行前の値(0x30番地の汎用レジスタの内容)
0b00010110 //2進数表記
C 1 //ステータスレジスタの値
d 1 //書き込み先のレジスタ指定
RLF Data,1 //命令実行
1 00010110 ➡ 0 00101101 //Cの内容がfの0ビットにはいり、fの各ビットが左にずれて、fの一番左のビットの内容がCにはいる。
W 0x6A //命令実行後の値、こちらは、変化なし。
f 0x2D //命令実行後の値、dが1だから、こちらに上書き。
Z➡0。 //ステータスレジスタの値