MacとUbuntuでアセンブリ結果が違う
auです。
テスト勉強で忙しいので面白いなーと思ったことを書きたいと思います。
とあるC言語プログラムをアセンブリした結果、MacとUbuntuで結果が違いました。
とあるC言語プログラム
int add (int a, int b) { return a + b; }
.section __TEXT,__text,regular,pure_instructions .macosx_version_min 10, 13 .globl _add ## -- Begin function add .p2align 4, 0x90 _add: ## @add .cfi_startproc ## %bb.0: pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset %rbp, -16 movq %rsp, %rbp .cfi_def_cfa_register %rbp movl %edi, -4(%rbp) movl %esi, -8(%rbp) movl -4(%rbp), %esi addl -8(%rbp), %esi movl %esi, %eax popq %rbp retq .cfi_endproc ## -- End function .subsections_via_symbols
a .file "add.c" .text .globl add .type add, @function add: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl %edi, -4(%rbp) movl %esi, -8(%rbp) movl -4(%rbp), %edx movl -8(%rbp), %eax addl %edx, %eax popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size add, .-add .ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609" .section .note.GNU-stack,"",@progbits
よくよく見ると違っていたのでなんだか面白いなーと思いました。
勉強頑張ります。