- 締切済み
PICでのアセンブリで、データレジスタについて教えて!
PICでのアセンブリについて教えてください! 使用してるPICは18f452です。 PICのデータメモリを全部使いたいんです。 たとえばソースの冒頭で data_1 equ 0x00 data_2 equ 0x01 ・ ・ ・ data_n equ 0x0x とすべて宣言する方法がありますが、452のメモリは1500バイト以上あるのでこれを千行以上かくのは疲れます。。 そこでC言語で書くところの int data [1500]; for(,,,){ data[i] = xx; } という風に大容量のメモリを作り それに値をいれたり読み出したりしたいのですが・・。 これをアセンブラで書くにはどうしたらよいでしょうか?。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- zwi
- ベストアンサー率56% (730/1282)
回答No.2
data equ 0x100 other equ data+1500*2 とやって添え字の値を、そのアドレス=dataに加算するだけです。 1500は個数。2は2バイトのintとして書いています。
- Gotthold
- ベストアンサー率47% (396/832)
回答No.1
宣言する必要ってありますか? わざわざequで名前をつけずに、 直接0x01などのアドレスを使うわけにはいかないの?
質問者
お礼
ありがとうございます、 解決しました。
質問者
補足
ありがとうございます。 そうですよね、宣言する必要はないですね。。 そのままレジスタアドレス使ってみます!。 あと、00~FFまでの256個のレジスタに値をぶち込みたいんですが これはもうシコシコとmovするしかないんでしょうか?。(256回)
お礼
ありがとうございます、解決しました。 間接アドレッシングFSRで無事解決しました。
補足
ありがとうございます。 知りたかった情報かもしれません、、 >>とやって添え字の値を、そのアドレス=dataに加算するだけです。 この辺もう少し詳しく教えていただけませんか?。