1

sect()および関数を使用する MIPS アセンブラー プログラム (MIPSPro と互換性のない構文) を移植していsectend()ます。セクションの開始アドレスと終了アドレスを返すようです。GNU AS docs は同様のものをサポートしていないようです - これを GAS 構文でコーディングする方法はありますか?

下記は用例です。

        la  t0,sect(.bss)
        la  t1,sectend(.bss)
    @clear:
        sw  zero,0(t0)
        addiu   t0,t0,4
        sltu    at,t0,t1
        bne at,zero,@clear
        nop

....

__text  dw  sect(.text)
__textlen   dw  sectend(.text)-sect(.text)
4

2 に答える 2

0

リンカー スクリプトに情報 (セクションを asm の変数として読み取ることができるインジケーターでラップ) を入れたと思います。これが、.dataセクションがフラッシュからRAMにコピーされ、.bssがゼロになるのを見た方法です...(gnuツールを使用)。

于 2012-06-15T20:06:06.647 に答える
0

ELF 実行可能ファイルを実行するシステムを使用している場合は、ここここで答えを見つけることができます。

于 2012-06-15T19:14:32.893 に答える