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的指針
在這裏插入圖片描述

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