История изменений
Исправление mix_mix, (текущая версия) :
Как-то я лихо асм-листинг урезал.
leaq -16(%rbp), %rcx ;; сохраняем адрес p в rcx
leaq -4(%rbp), %rdx ;; сохраняем адрес x в rdx
movl $5, -4(%rbp) ;; помещаем пятёрку в x
movq %rdx, -16(%rbp) ;; помещаем rdx (=адрес x) в p
movq %rcx, -24(%rbp) ;; помещаем rcx (=адрес p) в pp
Исправление mix_mix, :
Как-то я лихо асм-листинг урезал.
leaq -16(%rbp), %rcx ;; сохраняем адрес p в rcx
leaq -4(%rbp), %rdx ;; сохраняем адрес x в rdx
movl $5, -4(%rbp) ;; помещаем пятёрку в x
movq %rdx, -16(%rbp) ;; помещаем rdx (=адрес x) в p
movq %rcx, -24(%rbp) ;; помещаем rcx (=адрес p) в pp
Исходная версия mix_mix, :
Как-то я лихо асм-листинг урезал.
leaq -16(%rbp), %rcx
leaq -4(%rbp), %rdx
movl $5, -4(%rbp)
movq %rdx, -16(%rbp)
movq %rcx, -24(%rbp)
- Сохраняем адрес p в rcx;
- Сохраняем адрес x в rdx;
- Помещаем пятёрку в x;
- Помещаем rdx (=адрес x) в p;
- Помещаем rcx (=адрес p) в pp.
По листингу видно, что sizeof(void*) у нас 8 байт, скачок индекса до 16 из-за такого же выравнивания.