西殴 发表于 2017-6-7 23:15:27

检测点11.2

本帖最后由 西殴 于 2017-6-7 23:21 编辑

答案是这样的
add al,80H ; cf 1of 1sf 0zf 1 pf 1
这里的 zf怎么会是1呢   1的话不就是结果为0么难道把 1000 0000(80H) 的1当做有符号 然后它结果就为0了?
如果当做有符号的话 sf 不是应该为1而这里为0 为0的话不就是非负么

翻滚的火猫 发表于 2017-6-10 18:41:05

我也想知道这个1000 0000(80H)在这里到底是补码还是原码,

人造人 发表于 2017-6-10 19:29:02

试试
xor al, al
add al, 80h

西殴 发表于 2017-6-10 22:58:38

本帖最后由 西殴 于 2017-6-10 23:01 编辑

人造人 发表于 2017-6-10 19:29
试试
xor al, al
add al, 80h



图片里的红是部分 都是 add 然而 CF OF SF ZF 标志位的值会不一样呢   90H = 10010000b80H = 10000000B我就想不明白这里除了奇偶不一样外 还有哪里不一样的

人造人 发表于 2017-6-10 23:23:52

西殴 发表于 2017-6-10 22:58
图片里的红是部分 都是 add 然而 CF OF SF ZF 标志位的值会不一样呢   90H = 10010000b80H = 100 ...

一个是10h + 90h
另一个是80h + 80h

西殴 发表于 2017-6-11 10:23:04

人造人 发表于 2017-6-10 23:23
一个是10h + 90h
另一个是80h + 80h

一直以为这些代码是单独的

人造人 发表于 2017-6-11 12:10:26

西殴 发表于 2017-6-11 10:23
一直以为这些代码是单独的

吃货YA鸭 发表于 2017-6-21 10:51:25

因为al已经赋值为80h了,
在加上80h就等于100h,进位并且溢出,
此时的al==00,所以此时的zf=1
页: [1]
查看完整版本: 检测点11.2