ecall函数调用系统函数参数设置教程
生活随笔
收集整理的這篇文章主要介紹了
ecall函数调用系统函数参数设置教程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
系統調用的ecall指令會使用a0和a7寄存器,其中a7寄存器保存的是系統調用號,a0寄存器保存的是系統調用參數,返回值會保存在a0寄存器中。為了能讓系統調用指令能被集成進當前的流水線,ecall指令只支持一個返回值和一個參數。所有系統調用的語義見下表。
系統調用名稱 系統調用號 參數 返回值
輸出字符串 0 字符串起始地址 無
輸出字符 2 字符的值 無
輸出數字 1 數字的值 無
退出程序 3 無 無
讀入字符 4 無 讀入的字符
讀入數字 5 無 讀入的數字
對應的系統調用接口如下
void print_d(int num);
void print_s(const char *str);
void print_c(char ch);
void exit_proc();
char read_char();
long long read_num();
具體的實現需要使用內聯匯編,請參考test/lib.c。
總結
以上是生活随笔為你收集整理的ecall函数调用系统函数参数设置教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链中的共识机制以及共识算法
- 下一篇: icall,bcall,ecall