Вам достаточно изучить ассемблер и всё станет понятно.
Каждая команда ассемблера транслируется "дословно" в машинный код.
Т.е. например команда
pushl %edx
превратится в один байт
82
Например программа на ассемблере:
push %ebp
mov %esp,%ebp
call 0x8048298
cmp $0x41,%eax
jne 0x80483ce
push $0x80484b0
call 0x80482c8
add $0x4,%esp
mov $0x0,%eax
mov %ebp,%esp
pop %ebp
ret
превратится в машинный код:
0x55 0x89 0xe5 0xe8 0xfc 0xff 0xff 0xff
0x83 0xf8 0x41 0x75 0x0d 0x68 0x00 0x00
0x00 0x00 0xe8 0xfc 0xff 0xff 0xff 0x83
0xc4 0x04 0xb8 0x00 0x00 0x00 0x00 0x89
0xec 0x5d 0xc3
Почитать можно
здесь и
здесь . В целом подойдет любая книга по ассемблеру.