Well, this is gcc built-in assembler, which is very powerful, but hard to understand.
First,% char is a special char. It allows you to define registers and placeholders for numbers (mor on this later). Unfortunately,% is also used as part of the register name (for example,% EAX), so in gcc inline assembler you must use two percent of the characters if you want to name the register.
% 0,% 1 % 2 (ect..) -. , .
% 0 y, % 1 x. , , asm-, , , .
, r (y): , y % 1 ( , ).
. m , , . gcc.
. ! , , ect, (, EAX ). , , , , , .
, , . X EAX. EAX , y. , :
y = x;
: Intel-: . - , , - , . Intel .