#define rd_probe_1(ptr) ({ __attribute__((unused)) uint32_t dummy = *(const volatile uint32_t *)(ptr); })
#define rd_probe_num(ptr, num) ({ \
unsigned tmp; \
__asm__ __volatile__( \
"rep; lodsl" \
: "=S" (tmp), "=c" (tmp) : "S" ((const void *)(ptr)), "c" (num) : "eax"); })
#define wr_probe_1(ptr) ({ asm volatile( "add $0,(%0)" : : "r" (ptr)); })
#define wr_probe_num(ptr, num) (void)({ \
unsigned tmp; \
__asm__ __volatile__( \
"rep; movsl" \
: "=D" (tmp), "=S" (tmp), "=c" (tmp) : "D" ((void *)(ptr)), "S" ((void *)(ptr)), "c" (num) : "eax"); })
rd_probe_1(ptr) 把ptr指向的数据存到局部变量?
rd_probe_num(ptr,num) 把ptr指向的num个数据都装载到eax?
wr_probe_1(ptr) 把0赋给ptr指向的值?
wr_probe_num(ptr,num) 把ptr指向的值copy给自身?
怎么感觉没做什么操作,没啥意义啊!求指点。