История изменений
Исправление iskander9908, (текущая версия) :
iskander in ~/Programs λ gcc num.c -S num.s
iskander in ~/Programs λ cat num.s
.file "num.c"
.text
.local a
.comm a,4,4
.local b
.comm b,4,4
.section .rodata
.align 8
.LC0:
.base64 "aXNrYW5kZXI5OTA4INGD0YLQstC10YDQttC00LDQtdGCINGH0YLQviDQsNC00YDQtdGB0LAg0L3QtSDRgNCw0LLQvdGLOiAlcCAlcAoA"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
leaq a(%rip), %rax
movq %rax, -32(%rbp)
leaq 4+b(%rip), %rax
movq %rax, -24(%rbp)
movq -32(%rbp), %rax
movq %rax, -16(%rbp)
movq -24(%rbp), %rax
movq %rax, -8(%rbp)
movq -32(%rbp), %rax
cmpq -24(%rbp), %rax
je .L2
movq -24(%rbp), %rdx
movq -32(%rbp), %rax
leaq .LC0(%rip), %rcx
movq %rax, %rsi
movq %rcx, %rdi
movl $0, %eax
call printf@PLT
.L2:
movl $0, %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (GNU) 15.2.1 20250813"
.section .note.GNU-stack,"",@progbits
iskander in ~/Programs λ gcc num.s -o num
iskander in ~/Programs λ ./num
iskander9908 утверждает что адреса не равны: 0x561d8334401c 0x561d83344024
Если я ничего не напутал - то там есть сравнение
Исходная версия iskander9908, :
iskander in ~/Programs λ gcc num.c -S num.s
iskander in ~/Programs λ cat num.s
.file "num.c"
.text
.local a
.comm a,4,4
.local b
.comm b,4,4
.section .rodata
.align 8
.LC0:
.base64 "aXNrYW5kZXI5OTA4INGD0YLQstC10YDQttC00LDQtdGCINGH0YLQviDQsNC00YDQtdGB0LAg0L3QtSDRgNCw0LLQvdGLOiAlcCAlcAoA"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $32, %rsp
leaq a(%rip), %rax
movq %rax, -32(%rbp)
leaq 4+b(%rip), %rax
movq %rax, -24(%rbp)
movq -32(%rbp), %rax
movq %rax, -16(%rbp)
movq -24(%rbp), %rax
movq %rax, -8(%rbp)
movq -32(%rbp), %rax
cmpq -24(%rbp), %rax
je .L2
movq -24(%rbp), %rdx
movq -32(%rbp), %rax
leaq .LC0(%rip), %rcx
movq %rax, %rsi
movq %rcx, %rdi
movl $0, %eax
call printf@PLT
.L2:
movl $0, %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident "GCC: (GNU) 15.2.1 20250813"
.section .note.GNU-stack,"",@progbits
iskander in ~/Programs λ gcc num.s -o num
iskander in ~/Programs λ ./num
iskander9908 утверждает что адреса не равны: 0x561d8334401c 0x561d83344024
Если я ничего не напутал, то там есть сравнение