鱼C论坛

 找回密码
 立即注册
查看: 2389|回复: 2

课本217页 OF标志问题

[复制链接]
发表于 2012-1-2 02:11:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有符号数:

                    mov  al,98   
                     add al , 99


结果是 (al)=(al)+99=98+99=197
而结果197超出了机器所能表示的8位有符号数的范围:-128~127。

我把99和98和197换成了二进制

98:   0110 0010B
99:     0110 0011B
197:   1100 0101B

注释:没有见溢出啊!!!

因为书上没有说数是多少进制,见没有进制符号应该是10进制,接着197转换成十六进制 (al)=0C5H ,05H补码后(-59),如果我们用add指令进行的时有符号数运算,则98+99=(-59) 这样的结果让人无法接受?(什么意思)


建议真心帮助的朋友请麻烦大家翻翻课本,因为我写的内容概括罢了!


比如:mov al,90
           add  al,40

那么al=al+40=90+40=130

130的二进制数:1000 0010B
转换成十六进制:82H
补码后: 0111 1110B=(-126)
结果90+40=(-126) 因为有了最高位是1被迫补码看数!!!数据变了,变了还不成作者说这是结果,什么逻辑啊!!!

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-1-2 02:14:12 | 显示全部楼层
提示:可能我对溢出理解不够深刻,千万不要被我误导!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-2 15:56:05 | 显示全部楼层
嘿嘿,我告诉一个窍门,书上太罗嗦了,看了容易晕。进位我就不说了,容易懂,就说溢出。
加法溢出:两个正数相加,如果符号位改变了,表示溢出了。两个负数相加,符号位改变了,表示溢出了。
减法溢出:正数减负数,符号位改变,表示溢出了。负数减正数,符号位改变了,表示溢出了。
其他,正数负数相加,无论符号位怎么变都不会溢出。我讲的简单吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 23:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表