Changes between Version 1 and Version 2 of Ex03 サブルーチンの実装2017


Ignore:
Timestamp:
May 1, 2017 7:10:56 PM (9 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ex03 サブルーチンの実装2017

    v1 v2  
    1 トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2016 
     1トップ:http://galaxy.u-aizu.ac.jp/note/wiki/CAEX2017 
    22 
    33= swap手続き = 
    4 第4版教科書上巻p.137の「2.13 Cプログラムの包括的な例題解説」にあるswap手続き(関数)を 
     4教科書第5版上巻p.130の「2.13 Cプログラムの包括的な例題解説」にあるswap手続き(関数)を 
    55本演習で利用可能な命令で実装したプログラムを示します。 
    66教科書の該当分をよく読んで、C言語とMIPS命令との対応を理解すること。 
     
    155155 
    156156= 再帰手続き呼び出し =  
    157 第4版教科書上巻p.105にある階乗を計算する再帰的手続きをもとに、スタックレジスタ($sp)の使いかたを理解します。 
     157教科書第5版上巻p.99にある階乗を計算する再帰的手続きをもとに、スタックレジスタ($sp)の使いかたを理解します。 
    158158メインプログラムは、ラベルmainからはじまり、$a0にNをセットして手続きfactを呼び出します。 
    159159Nは要素数を指定し、結果はFNに格納します。 
     
    199199作成するプログラムでは、main関数から、作成した関数(手続き)を呼び出し、動作を確認する部分も含めること。 
    200200 
    201 == 16bit整数a, b, cを引数とし d = a*b + cを計算する関数: int mac(int a, int b, int c) == 
    202 以下のパターンについて動作確認をすること。 
    203 {{{ 
    204 (a, b, c) = (11, 21, 0) 
    205 (a, b, c) = (11, 21, 6) 
    206 (a, b, c) = (3333, 4444, 5555) 
    207 }}} 
     201== 2のべき乗(n)を計算する関数:  int power_of_two(int n) == 
    208202 
    209203ファイル名は「ex03_p7a.s」としてください。 
     
    213207 
    214208ファイル名は「ex03_p7b.s」としてください。 
     209 
     210== 以下のCプログラムで与えられる関数fibonacci == 
     211{{{ 
     212int fibonacci(int n) 
     213{ 
     214    switch (n) { 
     215        case 0: return 0; 
     216        case 1: return 1; 
     217        default: return fibonacci(n - 2) + fibonacci(n - 1); 
     218    } 
     219} 
     220}}} 
     221n = 1, 2, 3, 4, 5の時、関数値はそれぞれ1, 2, 3, 5, 8となる。またfibonacci(7) = 21である。  
     222 
     223ファイル名は「ex03_p7c.s」としてください。 
     224