rsp at _start - , ABI, call, call 8B , , rsp -8 .
, , ABI ( C runtime lib, main, crtlib, _start).
rsp 0x7fffffffdce8. ?
, call , , , printf ( SSE ), , , segfault.
push byte 0xFF:
64b ( 16 32- ) ( byte , byte , , 16, 32 64 ), NASM ( , qword 64b ) imm8 .
BTW -w+all, NASM ( , , , ) :
warning: signed byte value exceeds bounds
, push word 0xFF , 0x00FF.
: , , , ABI ( 64b, , , push, push rbp).
, rsp ( rbp, ), and rsp,-16, .
, , ABI, call, -8B. push rbp , , rbp ( mov rbp, rsp "" ) .
: , ...
, 100% , NASM, , push , NASM ( , , , ).
push byte 0xFF, NASM byte " ", . byte push, NASM qword 64b. byte , - 0xFF qword. undefined. NASM, , , , NASM , , push word -1, "push word operand imm8". , , imm16 push strict word -1.
. , ( 64b) ( , , , " qword", imm32, imm64 ( op64 , )... , dword qword, 32b 64b):
6 00000000 6AFF push -1
7 00000002 6AFF push strict byte 0xFF
8 ****************** warning: signed byte value exceeds bounds
9 00000004 6AFF push byte 0xFF
10 ****************** warning: signed byte value exceeds bounds
11 00000006 6AFF push strict byte -1
12 00000008 6AFF push byte -1
13 0000000A 6668FF00 push strict word 0xFF
14 0000000E 6668FF00 push word 0xFF
15 00000012 6668FFFF push strict word -1
16 00000016 666AFF push word -1
17 00000019 68FF000000 push strict dword 0xFF
18 0000001E 68FF000000 push dword 0xFF
19 00000023 68FFFFFFFF push strict dword -1
20 00000028 6AFF push dword -1
21 0000002A 68FF000000 push strict qword 0xFF
22 0000002F 68FF000000 push qword 0xFF
23 00000034 68FFFFFFFF push strict qword -1
24 00000039 6AFF push qword -1
, , , 64b, , qword push (rsp -= 8) , push -1 NASM imm8, , rsp -8, . , , , , byte .
, , NASM/bugzilla/-, . , " " ( , , , , ). , , . NASM imm16 imm8, .