CY
CY为进位标志位.如果是加法目的操作数超过了它能表达的最大的无符号数时CY=1,如果是减法用小的整数减去大整数时CY=1
程序演示
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode:DWORD
.data
.code
MAIN PROC
MOV ESI, 0FFFFFFFFh ;不影响标志位
INC ESI ;虽然结果超出范围,但INC不影响CY
NEG ESI ;0-0 CY=0
MOV ESI,0h ;不影响标志位
DEC ESI ;虽然用小整数(0)减去了大整数(1),但DEC不影响CY
NEG ESI ;0-FFFFFFFF CY=1
MOV ESI,80000000h ;不影响标志位
ADD ESI,80000000h ;超出范围,CY=1
NEG ESI ;0-0 CY=0
MOV ESI,80000000h ;不影响标志位
SUB ESI,90000000h ;小数减去大数,CY=1
NEG ESI ;0-F0000000,CY=1
INVOKE ExitProcess, 0
MAIN ENDP
END MAIN
NEG对CY的影响
NEG对CY的影响,我们同样可以视作【0-目的操作数】来理解。当执行NEG之前,目的操作数不是0时,CY=1。