RISC-V汇编实现矩阵阶乘

ops/2024/10/21 6:37:08/

1) 源代码 

long long fact(long long n) {if (n < 1) return 1;else return (n*fact(n - 1));
}

2) 汇编代码 

fact:addi sp, sp, -16       // adjust stack for 2 itemssd x1, 8(sp)           // save the return addresssd x10, 0(sp)          // save the argument naddi x5, x10, -1       // x5 = n - 1bge x5, x0, L1         // if (n - 1) >= 0, go to L1addi x10, x0, 1        // return 1addi sp, sp, 16        // pop 2 items off stackjalr x0, 0(x1)         // return to callerL1:addi x10, x10, -1      // n >= 1: argument gets (n - 1)jal x1, fact           // call fact with (n - 1)ld x6, 0(sp)           // restore argument nld x1, 8(sp)           // restore the return addressaddi sp, sp, 16        // adjust stack pointer to pop 2 itemsmul x10, x10, x6       // return n * fact(n - 1)jalr x0, 0(x1)         // return to the caller


http://www.ppmy.cn/ops/103606.html

相关文章

Unity编辑器扩展之Scene视图扩展

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity编辑器扩展之Scene视图扩展 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&#xff01; …

前端 数值列 禁止输入多个小数点

问题来源&#xff1a;测试输入时误输入两个小数点时&#xff0c;会出现NAN显示 问题解决&#xff1a;编写 一个 JavaScript 函数来检查和处理字符串中的小数点数量 示例代码&#xff1a; 定义一个函数&#xff0c;接收用户输入的字符串。检查字符串中是否包含超过一个小数点。…

mysql 一主一从数据库的配置文件

MySQL一主一从的配置主要涉及到主服务器&#xff08;Master&#xff09;和从服务器&#xff08;Slave&#xff09;的配置文件&#xff0c;通常是my.cnf或my.ini&#xff0c;具体配置如下&#xff1a; ### 主服务器&#xff08;Master&#xff09;配置&#xff1a; 1. **serve…

算法的时间复杂度

一.实例&#xff1a; 1.用算法表白&#xff1a;“爱你n遍”。 #include<stdio.h> ​ //算法1&#xff1a;逐步递增型爱你 void loveYou(int n) //n为问题规模 {int i1; //爱你的程度 --> 设为语句1 while(i<n) //设为语句2 {i; //设为语句3 printf("I lov…

C++判断语句(基础速通)ac-wing

倍数 #include <iostream> using namespace std; int a, b; int main() {cin >> a >> b;if (a % b 0 || b % a 0) cout << "Sao Multiplos";else cout << "Nao sao Multiplos";return 0; }零食 #include <iostream>…

hive学习(五)

一、hive的DML操作 1.load&#xff08;向表中装载数据&#xff09; hive> load data [local] inpath 路径 [overwrite] into table 表名 [partition (partcol1val1,…)];特殊说明 1&#xff09;local&#xff1a;标识从本地加载数据到Hive表&#xff0c;若没有local的话从…

EmguCV学习笔记 VB.Net 8.2 分水岭法 watershed

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

浅析WebRTC技术在智慧园区视频管理场景中的应用

随着科技的飞速发展&#xff0c;智慧园区作为城市智慧化的重要组成部分&#xff0c;正逐步成为现代化管理的重要方向。智慧园区的建设不仅涉及硬件设施的智能化升级&#xff0c;还离不开高效的视频管理和实时通信技术。在这一背景下&#xff0c;WebRTC&#xff08;Web Real-Tim…