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

精华主题: 0
发帖数量: 1402 个
工控威望: 1507 点
下载积分: 13266 分
在线时间: 2205(小时)
注册时间: 2008-03-19
最后登录: 2024-12-01
查看小蜜蜂的 主题 / 回贴
楼主  发表于: 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指令????
小蜜蜂
你让我滚,我滚了。你让我回来,对不起,滚远了...
级别: 论坛先锋

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