debug程序,关于联想品牌机浮点协处理器的万般困惑

alphapaopao 2004-02-16 11:04:15
下面这段程序,在我们的任何兼容机上都能正常运行,但是在联想的机器上,频繁出现崩溃(float point devided by zero)。崩溃发生在第三行的 fld 指令。这种现象不是每次都出现,而是随机出现。也就是说,有的时候也能正常运行,但是有的时候就报告除零错。

// source code line 96: res.x=a.x-b.x;
028D355C mov eax,dword ptr [ebp+0Ch]
028D355F mov ecx,dword ptr [ebp+10h]
028D3562 fld qword ptr [eax]
028D3564 fsub qword ptr [ecx]
028D3566 fstp qword ptr [ebp-18h]

查看 eax 指向的浮点数 *(double*)eax 0.024238226856386 非常正常。
ecx 的: *(double*)ecx 0.024238226856386 也没问题。

fld 指令怎么可能除零错呢!!这里根本没有除法运算,只有加减法。艾,什么破机器。是不是浮点协处理器有问题?

浮点栈当前状态如下:
ST0 = +0.00000000000000000e+0000
ST1 = +0.00000000167336242e+2071
ST2 = +0.00000000000000000e+0000
ST3 = +0.00000000000000000e+0000
ST4 = -4.14142770149854512e+2261
ST5 = +8.14522198282385296e+2114
ST6 = +0.00000000000000000e+0000
ST7 = +0.00000000000000000e+0000

...全文
132 14 打赏 收藏 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
源码直接下载地址: https://pan.quark.cn/s/854bd57df23a 在金融行业中,房产购置贷款是众多人在购置不动产时必须进行的一项财务规划。Matlab作为一种功能强大的数学及数据分析平台,经常被应用于各类复杂的运算,其中包括住房贷款的计算。本文将详细研究运用Matlab开发住房贷款计算程序的相关知识要点,以协助读者掌握如何借助编程技术处理实际的信贷问题。 1. **信贷种类** - **商业信贷**:此类贷款通常由金融机构提供,其利率会随市场行情变化,借款人可选用固定利率或浮动利率方案。 - **公积金信贷**:该类贷款获得政府机构的支持,利率一般低于商业信贷,但设有最高贷款金额的限制。 2. **偿付模式** - **等额本金偿付**:每月支付相同数量的本金,利息部分逐月减少,因此整体还款总额会逐步降低。 - **等额本息偿付**:每月支付固定金额的本金与利息组合,利息部分随本金的逐月减少而递减。 3. **住房贷款计算公式** - **等额本息偿付**:每月还款额=贷款本金×[月利率×(1+月利率)^(贷款期数)]÷[(1+月利率)^(贷款期数)-1]。 - **等额本金偿付**:每月应还本金=贷款总额/贷款期数,每月利息=(贷款余额-累计已还本金)×月利率。 4. **Matlab编程基础** - **变量设定**:在Matlab环境中,首要任务是设定贷款数额、年化利率、贷款时长等核心参数。 - **循环控制结构**:借助for循环来模拟每个还款周期的过程,进行本金与利息的计算。 - **函数构建**:将住房贷款的计算逻辑封装为函数,便于重复使用和测试不同条件下的结果。 5. **Matlab代码编写** - **等额本息函数实现**...

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧