ecall函数调用系统函数参数设置教程
系統(tǒng)調(diào)用的ecall指令會(huì)使用a0和a7寄存器,其中a7寄存器保存的是系統(tǒng)調(diào)用號(hào),a0寄存器保存的是系統(tǒng)調(diào)用參數(shù),返回值會(huì)保存在a0寄存器中。為了能讓系統(tǒng)調(diào)用指令能被集成進(jìn)當(dāng)前的流水線(xiàn),ecall指令只支持一個(gè)返回值和一個(gè)參數(shù)。所有系統(tǒng)調(diào)用的語(yǔ)義見(jiàn)下表。
系統(tǒng)調(diào)用名稱(chēng) 系統(tǒng)調(diào)用號(hào) 參數(shù) 返回值
輸出字符串 0 字符串起始地址 無(wú)
輸出字符 2 字符的值 無(wú)
輸出數(shù)字 1 數(shù)字的值 無(wú)
退出程序 3 無(wú) 無(wú)
讀入字符 4 無(wú) 讀入的字符
讀入數(shù)字 5 無(wú) 讀入的數(shù)字
對(duì)應(yīng)的系統(tǒng)調(diào)用接口如下
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();
具體的實(shí)現(xiàn)需要使用內(nèi)聯(lián)匯編,請(qǐng)參考test/lib.c。
總結(jié)
以上是生活随笔為你收集整理的ecall函数调用系统函数参数设置教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 区块链中的共识机制以及共识算法
- 下一篇: icall,bcall,ecall