整数16位,双整数32位,其转换过程为:
首先保留16位整数的最高位,即符号位,并将最高位置0。
然后将16位扩展为32位。
最后根据最高位置0还是置1.
如果你自己扩展的话,那会非常简单,例如MW0扩展为Md0,
1、首先保留MW0的最高位,用字与操作,结果保存在Mw10中。
2、将16位扩展为32位,即将使用移动指令将MW0移入Mw2中。
3、根据最高位置0或者1,将MW10的数据移入Mw0中。
通过以上步骤,当读取Md0的时候就是32位数据,当然,系统的ITD指令不是这样做的,其使用的时地址指针来完成的,实现原理相同。
首先保留16位整数的最高位,即符号位,并将最高位置0。
然后将16位扩展为32位。
最后根据最高位置0还是置1.
如果你自己扩展的话,那会非常简单,例如MW0扩展为Md0,
1、首先保留MW0的最高位,用字与操作,结果保存在Mw10中。
2、将16位扩展为32位,即将使用移动指令将MW0移入Mw2中。
3、根据最高位置0或者1,将MW10的数据移入Mw0中。
通过以上步骤,当读取Md0的时候就是32位数据,当然,系统的ITD指令不是这样做的,其使用的时地址指针来完成的,实现原理相同。