018-【X86-汇编语言】-标记寄存器-进位标志位[CY]

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。

猜你喜欢

转载自blog.csdn.net/patronwa/article/details/88787895