汇编语言置位和清除单个CPU标志位
怎样能方便地置位和清除零标志位、符号标志位、进位标志位和溢出标志位?有几种方法,其中的一些需要修改目标操作数。要将零标志位置 1,就把操作数与 0 进行 TEST 或 AND 操作;要将零标志位清零,就把操作数与 1 进行 OR 操作:
test al, 0 ;零标志位置 1
and al, 0 ;零标志位置 1
or al, 1 ;零标志位清零
or al, 80h ;符号标志位置 1
and al, 7Fh ;符号标志位清零
stc ;进位标志位置 1
clc ;进位标志位清零
mov al,7Fh ; AL = +127
inc al ; AL = 80h (-128), OF=1
or eax, 0 ; 溢出标志位清零