请教除法指令!!

[复制链接]
查看2780 | 回复6 | 2006-10-24 17:57:00 | 显示全部楼层 |阅读模式

如:DIV D0 D2 D4

为什么当16位运算时:D0/D2----D4

而当32位运算时是:[D1.D0]/[D3.D2]-----[D5.D4]

还有16位运算和32位运算分别是什么,各会用在什么情况下比较多呢?

请各位指教一下我这个新手!!!谢谢!!

philohany | 2006-10-25 11:23:00 | 显示全部楼层

16位数据能表示-32768到32768范围内的数,32位数据能表示-2147483到2147483范围内的数,

因此如果运算数据较大超出16位范围,就应用到32位数据运算了。

shanan0610 | 2006-10-25 12:48:00 | 显示全部楼层

那上面那个例子怎样解释啊???

shanan0610 | 2006-10-25 12:50:00 | 显示全部楼层
那上面那个例子怎样解释啊?
bsmtlxw | 2006-10-25 13:31:00 | 显示全部楼层

16位解释如下:
比如 D0中存有数据2222 ,D2中存有1111 进行DIV运算后,结果2放在D4中
32位类似,注意的是[D1.D0] 表示D1的数据做前十六位,D0的数据做后十六位,[D3.D2]一样,进行DIV运算后,计算结果前十六位放D5,后十六位放D4

如果有一个数12345678 除11112222,则 D1中数据为1234,D0中数据为5678,D3中数据为1111,D2中数据为2222

关于16位数据能表示-32768到32768范围内的数,32位数据能表示-2147483到2147483范围内的数
解释如下:-32768 其实是十六位,注意前面的-号,那也算一位,32768默认是+号,并且D1,D0,D3,D2,D5,D4取值范围为-32768到32768如果超出会出错,
32位也一样

shanan0610 | 2006-10-25 15:53:00 | 显示全部楼层
明白了,谢了!!!
luohuayang | 2006-11-15 10:32:00 | 显示全部楼层
写得好,谢谢了
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则