いつもお世話になっております。
逆アセンブリした内容を確認しておりまして、
例えば mov 0xffef0, a の命令を実行した場合、0xffef0には Aレジスタの値が入るのでしょうか?
それとも、0xffef1にAレジスタの値が入って、0xffef0はそのまま(変化なし)となるのでしょうか?
ご教授いただきたく、宜しくお願いいたします。
【環境】
マイコン :RL78/G13(S2コア)
開発環境 :e2studio ver 2022-04 (22.4.0)
コンパイラ :GCC for Renesas RL78 ver 4.9.2.202201 最適化OFF
プロジェクト:C++、C混在
チョコです。
RL78の命令セットの「MOV !addr16,A」のことかと思いますが、「(addr16) ← A」となるので、0xff2f0にAレジスタの値が書き込まれます。
RL78では8ビット/16ビットでの転送(MOV)が可能です。8ビット転送にソース・レジスタによりディスティネーションのアドレスの奇数偶数の制約はありません。
ハードウェア マニュアルの「第28章 命令セットの概要」の「28.2 オペレーション一覧」の表28-5 オペレーション一覧(1/17)には以下のように記述されています。
以上
チョコさま
ご回答いただきありがとうございます。
> 「(addr16) ← A」となるので、0xff2f0にAレジスタの値が書き込まれます。
承知いたしました。