社区
汇编语言
帖子详情
在汇编中,如何判断是否溢出?
toann
2004-10-29 07:44:44
比如16位的AX和BX中分别有下列数据:
AX BX
147B 80DC
B568 54B7
42C8 608D
D023 9FD0
94B7 B568
分别执行:ADD AX,BX 和 SUB AX,BX。有没有简单的方法判断出结果是否溢出?请大虾指点。
...全文
2127
15
打赏
收藏
在汇编中,如何判断是否溢出?
比如16位的AX和BX中分别有下列数据: AX BX 147B 80DC B568 54B7 42C8 608D D023 9FD0 94B7 B568 分别执行:ADD AX,BX 和 SUB AX,BX。有没有简单的方法判断出结果是否溢出?请大虾指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iamroc
2004-11-21
打赏
举报
回复
1
手算?累死你!
8位2进制表达,超过 -128 —— 127,16位2进制表达,超过 -32768 —— 32767就是溢出
CF为1不叫溢出,叫产生进位
AegeanSea1999
2004-11-19
打赏
举报
回复
如果参与运算的数是无符号数,则判断进位标志CF:CF=1,表示有溢出;
如果参与运算的数是有符号数,则判断进位标志OF:OF=1,表示有溢出。
uglystone
2004-11-01
打赏
举报
回复
2
上面都说得很对
csdsjkk
2004-11-01
打赏
举报
回复
运算结果超出有符号数表示的范围即为溢出,
8位:-128~~127
16位:-32768~~32767
rolinyang
2004-11-01
打赏
举报
回复
执行语句后.
看看PSW寄存器中的每个位的值就行啦!
toann
2004-10-31
打赏
举报
回复
手算,不是机算:)AX,BX内容分别如下:
AX BX
147B 80DC
B568 54B7
42C8 608D
D023 9FD0
94B7 B568
下列指令每次执行时的跳转:
ADD AX,BX
JNO L1 ;不溢出则跳转
JNC L2 ;无进位则跳转
SUB AX,BX
JNC L3
JNO L4
JMP SHORT L5
手算的题
xjp6688
2004-10-31
打赏
举报
回复
看标志位!
大熊猫侯佩
2004-10-31
打赏
举报
回复
OF 位用来表示带符号数溢出
CF 位用来表示无符号数溢出
当成有符号数:
add ax,bx
jo (带符号数)溢出
当成无符号数:
add ax,bx
jb (无符号数)溢出
toann
2004-10-31
打赏
举报
回复
zlkw(行云流水)说的是我想知道的方法,就是不借助机器自己判断。比如:
AX BX
147B 80DC
B568 54B7
42C8 608D
D023 9FD0
94B7 B568
分别执行:ADD AX,BX 和 SUB AX,BX
那位大虾能用以上的数据给个例子详细讲解一下?谢谢了。
koyer
2004-10-30
打赏
举报
回复
看的标志位晒,CF OF 等等。一个字节是0——255,-128——127一个字是0——65535
kokblack
2004-10-30
打赏
举报
回复
用debug可以看得很清楚!
zlkw
2004-10-30
打赏
举报
回复
溢出的可能性:
两数相反:
被减数-减数=差。如果差与减数相同,溢出!!
两数同号:
A+B=C 如果C与A和B 异号 溢出~~~~~~~~~
kenyle
2004-10-30
打赏
举报
回复
来晚了。
fanyaoxue
2004-10-29
打赏
举报
回复
在DEBUG调试的时候,查看OF或CF的值,OF=1:OV时溢出;OF=0:NV表示没有溢出 CF=1:CY表示有进位或有借位;CF=0:NC表示无进位或无借位
大熊猫侯佩
2004-10-29
打赏
举报
回复
OF 位用来表示带符号数溢出
CF 位用来表示无符号数溢出
判断两数相加的结果是否
溢出
(C语言使用内嵌
汇编
)
【代码】判断两数相加的结果是否
溢出
(C语言使用内嵌
汇编
)
判断x+y是否
溢出
80x86
汇编
语言 判断x+y是否
溢出
汇编
溢出
的判断
对于初学
汇编
语言的初学者来说,是否
溢出
是一个难点,现总结如下: 执行加法指令ADD: OF标志位根据操作数的符号及其变化情况来设置:若两个操作数的符号相同,而结果的符号与之相反时,OF=1,否则OF=0。
溢出
位既然是根据数的符号及其变化来设置的,当然他使用来表示带符号数的
溢出
的。 执行减法指令SUB: 减法的OF位的设置方法为:若两个数的符号相反,而结果的符号与减数的符号相同,则OF
汇编
的进位与
溢出
汇编
的进位与
溢出
对于无符号数来说,不存在
溢出
的问题, 而对有符号数来说,不存在进位的问题 一个字节(8位) 的数有256个 (2的8次方) 一个字(16位) 的数有65536个 (2的16次方) 8个二进制位能够表达的无符号数范围是:0 ~ 255
c++算术
溢出
_如何更快地判断算术运算有没有
溢出
?
在编写代码的过程
中
,算术
溢出
是一件让人十分头疼的事。因此在代码
中
检测是否
溢出
是一件很有必要的事,那么该如何检测算术运算
中
的
溢出
呢?以C语言
中
的算术乘法为例,可以使用以下的代码检测是否有
溢出
://判断a与b的乘积是否
溢出
,是返回-1,否返回0 在函数
中
,首先计算a与b的乘积temp,然后再计算temp除以b。如果得到的结果是a的话,那么就没有
溢出
,否则运算过程
中
发生了
溢出
。诚然,该函数可以有效地检测...
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章