20180702_02 【参考】アドレッシングモード(addressing mode) ○命令の操作対象(オペランド部)を指定する方法、  あるいは、データの存在場所(アドレス)を指定する方法。 ○つぎのように、3つの分類の観点がある(その他も含めれば4種類か?)。  (1) レジスタ(register)、メモリ(memory)、I/O(input/output)  (2) 直接(direct, absolute)、間接(indirect)  (3) 修飾あり(indexed)、修飾なし  (4) その他 即値(immediate, literal)、 暗黙(implied, implicit)、 相対(relative)、 ゼロページ(zero page)、 ・・・・ (注意1)PICの場合: レジスタのみで、メモリはない(汎用ファイルレジスタはデータメモリとも解釈できるが、・・・)。 直接、即値アドレッシングモードが基本。 間接指定は、特殊レジスタのFSR(04h番地)とINDF(00h番地)とを組合せて実現している。 (注意2)修飾アドレッシングモードの場合には、 複数のオペランドを組み合わせて、アクセス(読んだり書いたり)する番地を決定する。 組み合わせるオペランド毎にそれぞれのアドレッシングモードがあることに注意。 (注意3) 決定されたアクセス(読んだり書いたり)する番地を、実行アドレス(effective address)という。 (例1)直接メモリ・アドレッシングモード(修飾なし) データが格納されている(あるいは格納する)メモリの番地を直接指定して、アクセス(読んだり書いたり)する。 (例2)レジスタ間接メモリ・アドレッシングモード(修飾なし) 指定したレジスタの内容を番地とするメモリをアクセスする。 (例3)即値アドレッシングモード オペランドに記述された数値を、直接にデータとして扱う。 番地(データの存在場所)を指定している訳ではない。