計算機アーキテクチャHW5 075761G 屋良 朝貴 クイズ1 3Fのプログラムのままでは、関数AがMAIN関数に戻ることができなくなる。 よって以下のようにする // MAIN // sw r1,0(sp) sw r2,0(sp) ........ sw rk,4k(sp) add sp,4k+4 jal addressA sub sp,4k+4 lw r1,0(sp) lw r2,0(sp) ......... lw rk,4k(sp) 元の仕事 ......... // addressA // addressA: ........ ........ sw r31,0(sp) jal addressB lw r31,0(sp) ....... jr r31 ;MAINに戻る // addressB // addressB: ........ ........ jr r31 ;Aに戻る クイズ2 // MAIN // ........ jal address 元の仕事の続き ........ // address // address:sw r1,0(sp) sw r2,0(sp) ........ sw rk,4k(sp) add sp,4k+4 サブルーチンの仕事 ........ sub sp,4k+4 lw r1,0(sp) lw r2,0(sp) ......... lw rk,4k(sp) jr r31 ;MAINへの帰還 ---- CALLER SAVE --メリット いつでも呼び出せる デメリット 呼び出しが複雑 --- CALLEE SAVE --メリット 呼び出しが簡単 デメリット 呼び出せるのが指定 クイズ3 値をCPUの内部に保存させれば、多少速くなるように感じる。
© Copyright 2025 ExpyDoc