#include<iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
}
在C++中,一个<<
就对应一个call指令,64位的传参是通过rdi rsi rdx rxc r8 r9
的顺序传参的,所以很容易看到途中有两个call指令,都对应std::operator<<
函数,通过rdi rsi
寄存器传入了两个参数
两处的call指令传入的第一个参数都是一个指向cout的指针,这就是链式调用吧,也就是cout << "hello world" << endl;
该打印语句
第二个call指令第二个参数即是endl
的指针