恭喜,你发布的帖子
发布于 2015-10-25 16:48:36
7楼
第一条指令,AIW相加,结果得16位带符号数一个。
第二条指令,指令是DI相减喔。要求AC是一个32位的数喔。何来个32位啊?前面不是说16位结果吗。
下面,问题开始了。分开两个事情给你解释。一个是用AC为何不行。一个是用VD为何可以。
AC
16位结果放到AC里面,高16位的值不确定。低16位的值是你心里面知道的值,没错。由于AC在很多地方被你使用过,高16位自然有值,一定不是全0 。所以以后在DI相减的指令里面当然当做你高16位的值是有用的啦。可这个并不是你的意愿。所以错了。
VD
为何VD就可以呢?
16位结果放到VD里面,你说高16位会是什么?大声说出来……0000000000000000。你既然使用了VD,你绝对不会使用一个被广泛使用过的地址再重复使用吧?所以,我也可以大声说,这个高16位的值一定是0 。接着。轮到第二条指令了。DI相减。
以下就是我说的不希望楼主知道的事情,相信938到这里,已经知道为什么了吧?
下面的,我不说了。买个关子是因为我觉得这个事情真的不是个正途。
总之,楼主使用I转DI然后DI转R就是正道。
请填写推广理由:
分享
只看
楼主