Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Lấy đầu ra assembler từ mã nguồn C/C++ bằng gcc


Gcc cung cấp tùy chọn '-S' để lấy đầu ra assembler từ mã C/C++. Tùy chọn này hiển thị kết quả sau khi biên dịch nhưng trước khi gửi cho assembler.

Cú pháp: gcc –S program.cpp

Ví dụ

#include <iostream>
using namespace std;

int main() {
    int x, y, sum;
    x = 50;
    y = 60;
    sum = x + y;
    cout << "Sum is: " << sum << endl;
    return 0;
}

Đầu ra assembler (rút gọn)

.file "test_cpp.cpp"
.text
.section .rodata
...
main:
.LFB1493:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
...
movl $50, -12(%rbp)
movl $60, -8(%rbp)
movl -12(%rbp), %edx
movl -8(%rbp), %eax
addl %edx, %eax
movl %eax, -4(%rbp)
leaq .LC0(%rip), %rsi
leaq _ZSt4cout(%rip), %rdi
call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT
...
movl $0, %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
...