草庐IT

linux - 通过 linux x86-64 函数调用保留了哪些寄存器

我相信我了解linuxx86-64ABI如何使用寄存器和堆栈将参数传递给函数(参见previousABIdiscussion)。我感到困惑的是,如果/哪些寄存器应该在函数调用中保留。也就是说,保证哪些寄存器不会被破坏? 最佳答案 这是来自文档[PDFLink的寄存器及其使用的完整表。]:r12、r13、r14、r15、rbx、rsp、rbp是被调用者保存的寄存器-它们在“跨函数调用保留”列中有"is"。 关于linux-通过linuxx86-64函数调用保留了哪些寄存器,我们在Stack

linux - 通过 linux x86-64 函数调用保留了哪些寄存器

我相信我了解linuxx86-64ABI如何使用寄存器和堆栈将参数传递给函数(参见previousABIdiscussion)。我感到困惑的是,如果/哪些寄存器应该在函数调用中保留。也就是说,保证哪些寄存器不会被破坏? 最佳答案 这是来自文档[PDFLink的寄存器及其使用的完整表。]:r12、r13、r14、r15、rbx、rsp、rbp是被调用者保存的寄存器-它们在“跨函数调用保留”列中有"is"。 关于linux-通过linuxx86-64函数调用保留了哪些寄存器,我们在Stack

第119篇 solidity 中的 ABI

 ABI全称ApplicationBinaryInterface(应用程序二进制接口),简单来说就是以太坊的调用合约时的接口说明。从外部施加给以太坊的行为都称之为向以太坊网络提交了一个交易,调用合约函数其实是向合约地址(账户)提交了一个交易,这个交易有一个附加数据,这个附加的数据就是ABI的编码数据。1.函数选择器一个函数调用数据的前4字节,指定了要调用的函数。这就是某个函数签名的Keccak哈希的前4字节(高位在左的大端序)(译注:这里的“高位在左的大端序“,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括

第119篇 solidity 中的 ABI

 ABI全称ApplicationBinaryInterface(应用程序二进制接口),简单来说就是以太坊的调用合约时的接口说明。从外部施加给以太坊的行为都称之为向以太坊网络提交了一个交易,调用合约函数其实是向合约地址(账户)提交了一个交易,这个交易有一个附加数据,这个附加的数据就是ABI的编码数据。1.函数选择器一个函数调用数据的前4字节,指定了要调用的函数。这就是某个函数签名的Keccak哈希的前4字节(高位在左的大端序)(译注:这里的“高位在左的大端序“,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括