1

ac プログラムをアセンブリ プログラムに変換し、コードを単純化しようとしています。

.global Func1
Func1: save %sp, -112, %sp
!st %i0, [%fp+68]
!st %i1, [%fp+72]
!ld [%fp+68], %o0
!ld [%fp+72], %o1
call    Func2, 0
nop
mov %o0, %g1
mov %g1, %i0
ret
restore

.global Func2
Func2: save %sp, -112, %sp
!st %i0, [%fp+68]
!st %i1, [%fp+72]
!ld [%fp+68], %g2
!ld [%fp+72], %g1
add %g2, %g1, %g1
umul    %g1, 2, %g1
mov %g1, %i0
ret
restore

何かを変更しようとすると、プログラムの戻り値が変更されるまで、十分に単純化しました。私の質問は、 st と ld は何をするのですか? 私は彼らが何を意味するかを知っていますが、ここで正確に何が起こっているのでしょうか? mov などを使用するだけでこれを行う別の方法はありますか? この種のリソースをオンラインで見つけるのは難しいので、助けていただければ幸いです。

4

1 に答える 1