xtl123925
级别: 略有小成
精华主题: 0
发帖数量: 175 个
工控威望: 439 点
下载积分: 842 分
在线时间: 116(小时)
注册时间: 2007-06-19
最后登录: 2024-12-10
查看xtl123925的 主题 / 回贴
楼主  发表于: 2009-05-04 21:48
请问这几行程序如何做  
DIV K800 K3 D110
DMUL  K60000  D110 D120
为何出现负数把K800换成K900就可以搞不懂哪位大侠能指点一下?
kawasakilu
级别: 略有小成
精华主题: 0
发帖数量: 319 个
工控威望: 380 点
下载积分: 2265 分
在线时间: 90(小时)
注册时间: 2007-04-12
最后登录: 2024-06-29
查看kawasakilu的 主题 / 回贴
1楼  发表于: 2009-05-06 20:12
引用
引用楼主xtl123925于2009-05-04 21:48发表的 算术运算 :
请问这几行程序如何做  
DIV K800 K3 D110
DMUL  K60000  D110 D120
为何出现负数把K800换成K900就可以搞不懂哪位大侠能指点一下?


1,DIV K800 K3 D110的运算结果是:D110存放商(266),D111存放余数(2)
2,在32位运算 DMUL K60000 D110 D120指令中 软元件被征用的范围是:D110 和D111
   结果存放于D120,D121,D122,D123
你自己算吧,D110和D111本来一个是商一个是余数,但是混合成一个32位数据后是个什么数?
再和60000乘一下,是不是得到一个怪胎!
3,你不要直接拿D110来作运算,过渡一下。比如将D110(MOV)给D115或其他寄存器,注意要跟结果寄存器保留最小的征用距离。
再试试看。
本帖最近评分记录:
  • 下载积分:+2(xtl123925) 热心助人!
  • 下载积分:+2(wenbin999) 热心助人!
    kawasakilu
    级别: 略有小成
    精华主题: 0
    发帖数量: 319 个
    工控威望: 380 点
    下载积分: 2265 分
    在线时间: 90(小时)
    注册时间: 2007-04-12
    最后登录: 2024-06-29
    查看kawasakilu的 主题 / 回贴
    2楼  发表于: 2009-05-06 20:18
    图片:
    算术运算结果
    kawasakilu
    级别: 略有小成
    精华主题: 0
    发帖数量: 319 个
    工控威望: 380 点
    下载积分: 2265 分
    在线时间: 90(小时)
    注册时间: 2007-04-12
    最后登录: 2024-06-29
    查看kawasakilu的 主题 / 回贴
    3楼  发表于: 2009-05-13 21:47
    呵呵,共同学习,共同提高。