C++反汇编--hello word

#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的指针
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章