Когда я разобрать main()
в GDB он Retuns этот результат:Что такое `и esp, 0xfffffff0`?
0x0804854c <+0>: push ebp
0x0804854d <+1>: mov ebp,esp
0x0804854f <+3>: and esp,0xfffffff0
0x08048552 <+6>: sub esp,0x10
и в коде я анализирую esp
регистр, как это:
x/32xw $esp
и делает это:
0xbffffb70: 0xb7ea1515 0xb7ff0590 0x080485eb 0xb7fd2ff4
0xbffffb80: 0x080485e0 0x00000000 0xbffffc08 0xb7e88e46
0xbffffb90: 0x00000002 0xbffffc34 0xbffffc40 0xb7fe0860
0xbffffba0: 0xb7ff6821 0xffffffff 0xb7ffeff4 0x080482bc
0xbffffbb0: 0x00000001 0xbffffbf0 0xb7fefc16 0xb7fffac0
0xbffffbc0: 0xb7fe0b58 0xb7fd2ff4 0x00000000 0x00000000
0xbffffbd0: 0xbffffc08 0xd51689cb 0xfbfdbfdb 0x00000000
0xbffffbe0: 0x00000000 0x00000000 0x00000002 0x08048400
Я хочу знать, какова связь между and esp,0xfffffff0
и этими результатами.
указатель стека выровнена по соображениям производительности и выровненной acceess данных. 'и' сам объясняется в asm-ссылке. –