#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
的指針