鱼C论坛

 找回密码
 立即注册
查看: 14562|回复: 8

如何判断 进位(借位)和溢出 无符号和有符号(加减乘除)

[复制链接]
发表于 2012-1-15 00:38:17 | 显示全部楼层 |阅读模式

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

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

x
求助各位告诉说下,有什么方法知道两数运算时,进位(借位)和溢出 , 无符号和有符号数都说下!有符号数包括(加减乘除)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-15 10:28:21 | 显示全部楼层
运算后CF=1就表示进位或借位(只有无符号数才涉及进位和借位的概念)
运算后OF=1就表示溢出(只有带符号数才涉及溢出的概念)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-1-15 17:26:21 | 显示全部楼层
二进制运算判断方法!

比如: 1001 1010  + 0011 0110  =?  判读cf of 的值是多少

最好加减乘除全部和我说下!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-15 18:19:57 | 显示全部楼层
主要看标志寄存器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-15 20:34:21 | 显示全部楼层
1001 1010  + 0011 0110  
若他们都是无符号数,相加结果为1101 0000不产生进位,所以CF=0
若它们是带符号数,则一正一负,相加不可能溢出(只有两个正数,或两个负数相加才可能溢出),所以OF=0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2012-1-16 02:41:16 | 显示全部楼层
麻烦说下 无符号乘除法 和 有符号数乘除法吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-16 11:13:37 | 显示全部楼层
你好好看看指令 跟 标志寄存器吧.你肯定没仔细学

无符号数除法指令 DIV(DIVision)

格式: DIV OPRD
----

功能: 实现两个无符号二进制数除法运算.

带符号数除法指定 IDIV(Interger DIVision)

格式: IDIV OPRD  
----

功能: 这实现两个带符号数的二进制除法运算.


无符号数乘法指令 MUL(MULtiply)

格式: MUL OPRD  
----

功能: 乘法操作.


带符号数乘法指令 IMUL(Integer MULtiply)

格式: IMUL OPRD
----

功能: 完成两个带符号数的相乘
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-16 11:27:58 | 显示全部楼层
LZ写几个小程序试一下啊。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-16 12:32:28 From FishC Mobile | 显示全部楼层
这个很简单吗    首先要保证没有溢出 因为溢出就没有其它什么可言   然后一步一步调试查找寄存器的变化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-21 23:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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