計算機アーキテクチャHW5 075761G 屋良 朝貴 クイズ1 3Fのプログラム

計算機アーキテクチャ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の内部に保存させれば、多少速くなるように感じる。