AV
Size: a a a
1
ЕК
DS
asm volatile(Я не могу прописать
"cld\n\t"
"rep movsl\n\t"
:
: "S"(src), "D"(dst), "c"(count)
);
"esi", "edi", "ecx"
в списке clobbers, что делать-то?DS
DS
1
DS
#define mov_blk(src, dest, numwords) \
__asm__ __volatile__ (\
"cld\n\t" \
"rep\n\t" \
"movsl" \
: \
: "S" (src), "D" (dest), "c" (numwords) \
: "%ecx", "%esi", "%edi" \
)
ЕК
1
DS
RB
RB
DS
ЕК
#define mov_blk(src, dest, numwords) \
__asm__ __volatile__ (\
"cld\n\t" \
"rep\n\t" \
"movsl" \
: \
: "S" (src), "D" (dest), "c" (numwords) \
: "%ecx", "%esi", "%edi" \
)
ЕК
Clobber descriptions may not in any way overlap with an input or output operand. For example, you may not have an operand describing a register class with one member when listing that register in the clobber list. Variables declared to live in specific registers (see Explicit Register Variables) and used as asm input or output operands must have no part mentioned in the clobber description. In particular, there is no way to specify that input operands get modified without also specifying them as output operands.
DS
ЕК
__volatile__
убрать, ситуация не меняется.AV
ЕК