quote:以下是引用菜鸟hello在2012-01-06 18:23:20的发言:quote:以下是引用KAPOK在2012-01-06 00:03:05的发言:
1.如果值在-32768~+32767之间,你直接取低字即可;
2.使用指令RND、RND-、RND+、TRUNC可以实现,但最好保证值在-27648~+27648之间!
取低字是不行的哦,符号位在最高位呢,正整数是OK的,如果数值是负整数,结果是错误的。
判断最高位然后再去低字,如果数值在-32768~32767之间。
楼主有没有试过,DI_BCD ; BCD_I 如果是16位的应该是没问题的,不知道32位啥结果?
补习计算机原理去。
to:LZ
只要数值的复位在-32768~32767之间,直接move就好了。如果超过这个范围,也不可能用一个字来表示了。
你是嫌move指令太简单了,觉得不过瘾?