CMP有关问题

CMP问题moval,1movbl,0ffhcmpal,bl为什么cmp后CF会等于1呢?[解决办法]al1,bl0ffhcmp al,bl0000 00011111

CMP问题
mov   al,1
mov   bl,0ffh
cmp   al,bl

为什么cmp后CF会等于1呢?

[解决办法]
al=1,bl=0ffh
cmp al,bl

0000 0001 1111 1121
-1111 1111 -> -1111 1111
---------- ----------
0000 0010 0000 0010

因为被减数向最高位产生了借位,所以CF=1
[解决办法]
cmp执行了隐含的减操作并根据结果修改相应标志位
无符号减法中1h比0ffh来得要小,故减法时产生借位,因此CF被设置