Насколько я понял:
- %rdi = 1-й аргумент = х
- %rsi = 2-й аргумент = y
- %rdx = 3-й аргумент = z
- Остальные манипулируют этими регистрами... и сохраняют в регистре возвращаемое значение.
3-я строка кода сборки leaq (%rsi, %rsi, 2), %rdx
, что, как я перевожу: z = y + 2*y
.
Я запутался, этот код неправильный или это магия сборки?
y*48
какy*3*16
- person Jester   schedule 23.03.20173y << 4 = y * 48
. - person dud3   schedule 23.03.2017