思路:正数绝对值就是其本身,负数绝对值是其值各位求反末位加1
实现代码:
mov eax, imm32
cdq => 利用符号扩展指令cdq先将eax的符号位扩展到edx中
xor eax, edx => 如果edx == 0(正数)那么异或后其值不变,如果edx == 0xFFFFFFFF(负数)那么异或后等同与将eax求反
sub eax, edx => 如果edx == 0(正数)那么相减后其值不变,如果edx == 0xFFFFFFFF(负数)那么等于值+1(eax = eax + (-(-1)))