小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1383 个
工控威望: 1485 点
下载积分: 13219 分
在线时间: 2177(小时)
注册时间: 2008-03-19
最后登录: 2024-05-14
查看小蜜蜂的 主题 / 回贴
楼主  发表于: 2008-11-09 21:37


经过第一行,第二行的乘法后,D150和D152是32位的,那么第五行的SUB怎么可以用16位的,指令手册上不是写了两个32位的相减用DSUB吗?
假如第六行的D20  D23都是16位的,(但是D23应该是32位的)两个相乘生成32位的D25,那么下一行用DDIV就对了,但是问题又来了,D25是32位的,D21是16位的,用32位的除以16位的,手册上可没有讲到,书上只是讲了16位除以16位用DIV,32位除以32位用DDIV
用DDIV除以后生成的D30应该是64位的,那下一行的怎么可以用16位的ADD呢?难道64位的D30加上32位的D150只要用ADD就可以了,而且还会生成16位的D35,以至于最后一行可以用16为的MOV指令????
ygwpxq
ygwpxq
级别: 家园常客
精华主题: 0
发帖数量: 951 个
工控威望: 771 点
下载积分: 153576 分
在线时间: 569(小时)
注册时间: 2008-05-17
最后登录: 2021-07-31
查看ygwpxq的 主题 / 回贴
1楼  发表于: 2008-11-09 21:56
运算方法与法则不一样,不能简单理解为数学运算,就像布尔代数一样:1+1=1而不等于2相似
angela1024
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 234 点
下载积分: 624 分
在线时间: 75(小时)
注册时间: 2008-09-12
最后登录: 2012-08-23
查看angela1024的 主题 / 回贴
2楼  发表于: 2008-11-09 22:03
如果计算数据小的话  就没什么影响
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

精华主题: 0
发帖数量: 1383 个
工控威望: 1485 点
下载积分: 13219 分
在线时间: 2177(小时)
注册时间: 2008-03-19
最后登录: 2024-05-14
查看小蜜蜂的 主题 / 回贴
3楼  发表于: 2008-11-09 22:14
那不行的,前面的就开始忽略的话,到后面的误差的大了