InterlockedIncrement(&l);
002D08AF mov eax,1
002D08B4 lock xadd dword ptr [l],eax
002D08B9 inc...可以结合lock使用的汇编指令如下:
BT, BTS, BTR, BTC
XCHG, XADD
ADD, OR, ADC, SBB
AND, SUB, XOR
NOT, NEG, INC, DEC...如XADD r/m32, r32,即交换r32 与r/m32;并将相加的和存储到 r/m32中。...= temp
// 将相加的和保存到[l]参数中
[l] = eax + [l]
从上面伪代码可以看到,一个xadd指令完成了多步操作,且是针对内存地址的操作,所以这行指令使用了lock前缀修饰。...【3】因为InterlockedIncrement函数返回值也会返回自增的结果,且因win32汇编的函数返回值保存在eax中,所以此时eax还要自增1(即inc eax)。