学籍番号 学年 実行時環境 年 氏名 (7/20〆切) レポート課題 1. 図 1 に示す原始プログラムの下線部分に対応するアセンブリコードを図 2 に記入せよ。 また、図 1 の地点①まで実行したときの Dseg およびフレームポインタ(FP), ブロックポ インタ(BP)の状態を表 1 左欄とする。このとき、図 1 の地点②まで実行したときの (func 内から見た) Dseg, FP, BP の状態を表 1 右欄に記入せよ。ただし、関数への引数は値渡し とする。 main () { int n, i=5, j=10; ① n = func (i, j); } int func (int x, int y) { int z; z = y - x; ② return z; } 0 START 11 ASSGN 1 PUSHI 5 12 REMOVE 2 POP (0, 2) 13 HALT 3 PUSHI 10 14 PUSHI (0, 1) 4 POP (0, 3) 図 1 原始プログラム ① 15 PUSH (0, -3) 5 PUSHI (0, 1) 16 PUSH (0, -4) 6 17 SUB 7 18 ASSGN 8 19 REMOVE 9 20 10 21 ② 図 2 アセンブリコード 表 1 Dseg および FP, BP の状態 地点①実行時 変数名 地点②実行時 相対番地 実番地 値 DL RA (0, -2) (0, -1) 0 1 -1 -1 SL (0, 0) 2 n i j (0, 1) (0, 2) (0, 3) FP 0 変数名 相対番地 実番地 値 0 1 -1 -1 -1 DL RA SL 2 -1 3 4 5 5 10 n i j 3 4 5 6 7 8 9 10 11 5 10 BP 2 FP BP
© Copyright 2025 ExpyDoc