Wstawki asemblerowe
Rejestry wejściowo-wyjściowe

Jeżeli chcemy zmodyfikować tylko zawartość rejestru bez niekoniecznego przepisywania jego wartości do rejestru wyjściowego, możemy powiązać rejestr wejściowy z wyjściowym. W tym celu w wymaganiach dla rejestru wejściowego podać numer rejestru wyjściowego np.

int x = 12345;
 asm("and %2, %0 \n\t" 
     : "=r"(x)
     : "0"(x), "i"(0xffffff00) : );

Wynik

subq	$16, %rsp           # int x = 12345;
movl	$12345, -4(%rbp)
 
movl	-4(%rbp), %eax
 
and $-256, %eax             # wstawka
 
movl	%eax, -4(%rbp)


Tomasz Kapela, Kraków 2011-2020