马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 风扫地 于 2011-11-22 18:10 编辑
检测点11.2mov al,10h ;(al)=10h
add al,90h ;(al)=a0h 当成有符号计算的话 90h 是 -122的补码。10h是自身的补码 相加为负 sf=1、最高位为1
mov al,80h ;(al)=80h
add al,80h ;(al)=00h 当成有符号数 80h是 -128的补码。。-128+(-128)为负数。sf不是应该等于1 为什么等于0 还是说SF的值只取决与最高位符号位的值?
mov al,0fch ; (al)=0fch
add al,05h ;(al)=01h 当成有有符号数 0fch是 -4的补码。。-4+5 =1 为正。。sf =0 同时最高位为0
mov al,7dh ;(al)=7dh
add al,0bh ;(al)=88h 当成有符号数 7d 和0b 都是正数。结果为正数。但答案sf =1
sf的取值可以由结果的最高位来确定。而不是用看有符号数运算的正负。是这么一回事么?希望各位大大解答下。。
7d+0b=88h=136 是补码 所以结果为负数 最高位为1 sf=1
80h+80h=100h 进位了,8位寄存器里结果为0,自然sf=0
|