for循环话语奇怪的自己倒序了是什么原因

for循环语句奇怪的自己倒序了是什么原因
for i:=1 to 7 do  这句应该是i从1每次加1直到7,可是我的程序中在跟踪时发现i自己从7开始向下减1,这是怎么回事啊?
for i:=1 to 30 do  跟踪发现i是从30开始向下减
for i:=0 to 47 do 跟踪发现i是从48开始向下减
我并没有写成  downto 为什么自动成了倒序了?我的平台是delphi2010  系统是WIN7  以前一直正常,今天发现这个问题的。

------解决方案--------------------
你在循环的时候 并没有用到你的循环体 i

这个循环体i 被放到了 ECX 计数寄存器里面. 每次循环减一,这样效率好!
------解决方案--------------------
如果你没用到循环变量就会被优化成倒序.因为倒序代码会小一点.
如果循环变量减到0,标志位寄存器会被打上0标志.JZ指令跳转即可,无需做cmp操作.