正在加载图片...
版权所有南京大学计算机科学与技术系许畅等2022春季版 SPIM Version 8.0 of January 8,2010 Copyright 1990-2010,James R.Larus All Rights Reserved. See the file README for a full copyright notice. Loaded:/usr/lib/spim/exceptions.s Enter an integer:7 2 358 13 图15.样例1汇编代码的运行结果。 52 jr Sra 该汇编代码在命令行SPIM Simulator中的运行结果如图15所示(输入7,则输出前7个 Fibonacci数)。 样例2: 输入: 1 int fact(int n) 2{ 3 if(n==1) 4 return n; else 6 return (n fact(n 1)); 8 9 int main() 10{ 11 int m,result; 12 m read(); 13 if (m >1) 14 result fact(m); 15 else 16 result 1; 17 write(result); 18 return 0; 19 输出: 该样例程序读入一个整数n,然后计算并输出nl的值。将其翻译为一段能在SPIM Simula- tor中执行的正确的目标代码可以是这样的: 1.data 2 prompt:.asciiz "Enter an integer:" 3 ret:.asciiz "\n" 4 .globl main 5 .text read: 7 1i$v0,4 8 la $a0,prompt 9 syscall 10 1i$v0,5 11 syscall 12 jr Sra 13 97版权所有 南京大学计算机科学与技术系 许畅等 2022春季版 97 52 jr $ra 该汇编代码在命令行SPIM Simulator中的运行结果如图15所示(输入7,则输出前7个 Fibonacci数)。 样例2: 输入: 1 int fact(int n) 2 { 3 if (n == 1) 4 return n; 5 else 6 return (n * fact(n - 1)); 7 } 8 9 int main() 10 { 11 int m, result; 12 m = read(); 13 if (m > 1) 14 result = fact(m); 15 else 16 result = 1; 17 write(result); 18 return 0; 19 } 输出: 该样例程序读入一个整数n,然后计算并输出n!的值。将其翻译为一段能在SPIM Simula￾tor中执行的正确的目标代码可以是这样的: 1 .data 2 _prompt: .asciiz "Enter an integer:" 3 _ret: .asciiz "\n" 4 .globl main 5 .text 6 read: 7 li $v0, 4 8 la $a0, _prompt 9 syscall 10 li $v0, 5 11 syscall 12 jr $ra 13 图15. 样例1汇编代码的运行结果
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有