在日常的编程中,你是否遇到以下类似的情况,还有其他各种奇奇怪怪的现象,其实大多数的问题是你对数据类型以及扫描周期的理解欠缺照成的,我们来具体看下这些问题点。 1)问题1 : D2为什么等于40 2)问题2 : D1为什么等于0 3)问题3 : D0的数据为什么乱了 4)问题4: 触摸屏做了个D0的元件,D10为什么显示为“ **** ” 问题解析 问题1 :D2为什么等于40 因为32位除法指令的结果是占用了4个寄存器,就是下面这个指令,是把32位D10的寄存器除以D12,值放在D0里面,余数放在了D2里面169除以43,值等于3,余数是40 问题2 : D1为什么等于0 因为DMOV指令占用的地址是32位的,占用了D0 D1 问题3 : D0的数据为什么乱了 因为SPD指令是16位的,而使用的乘法指令是32位的,占用了D0 、D1 两个寄存器,D1寄存器里面有数值,所以显示的值是D0D1的32位数据 问题4: 触摸屏做了个D0的元件,D10为什么显示为“ **** ” 因为触摸屏的数据类型或者数据的上下限设置不对,导致数据超出了该元件的显示范围,所以显示为“ **** ” |
/1
|手机版|免责声明|本站介绍|工控课堂
( 沪ICP备20008691号-1 )
GMT+8, 2026-3-8 08:35 , Processed in 0.058529 second(s), 22 queries .
Powered by Discuz! X3.5
© 2001-2026 Discuz! Team.