PPC 投稿者:sq 投稿日:2009/07/22(Wed) 13:09 No.1685 | |
|
はじめまして。
PowerPC のアセンブリを勉強しているのですが、.data 領域の書き換え方を ご存知でしょうか。
よろしくお願いいたします。 |
| Re: PPC jun - 2009/07/23(Thu) 01:07 No.1688 | |
|
|
.data 領域のラベルをLabelとした時、そこに1を書き込むとすると:
lis r5, Label@ha addi r5, r5, Label@l li r3, 1 stw r3, 0(r5)
のようにすればいいと思います。 メモリアドレスをレジスタに設定する場合、上位と下位に分けてロード する必要があります。
|
| Re: PPC sq - 2009/07/23(Thu) 13:57 No.1689 | |
|
|
お返事ありがとうございます。
.data .literal4 .align 2 label: .long 0 というもとで、 lis r5, ha16(label) addi r5, r5, lo16(label) li r6, 1 stw r6, 0(r5) というコードのあるプログラムを動かしてみたところ、Bus error になってしまいました ...。
Label@ha や Label@l の意味を取り違えているでしょうか;
よろしくお願いいたします。 |
| Re: PPC jun - 2009/07/24(Fri) 00:49 No.1691 | |
|
|
labelというラベル名に問題があるような気がしてきました。 別の名称で試していただけますか。 Label@ha や Label@l の意味は問題ありません。 |
| Re: PPC sq - 2009/07/24(Fri) 10:14 No.1692 | |
|
|
label => test にしても Bus error が出ます; |
| Re: PPC jun - 2009/07/25(Sat) 00:56 No.1694 | |
|
|
なぜでしょうか。 手元の玄箱上では以下のコードではBus errorは発生しません。
.globl _start .text .align 2 _start: lis r5, Label0@ha addi r4, r4, Label0@l li r3, 1 stw r3, 0(r5)
li r3, 0 li r0, 1 sc
.data .align 2 Label0: .long 0
|
| Re: PPC sq - 2009/07/27(Mon) 11:24 No.1696 | |
|
|
やはり Bus error が出ます; 本当に、なぜなんでしょう。 しばらく調べてみます。 丁寧なご回答、ありがとうございました。 |
| Re: PPC sq - 2009/07/27(Mon) 14:18 No.1697 | |
|
|
すみません、原因は typo でした;; ですが、これで色々出来そうです。
重ねて、ありがとうございました。 |
|