单片机C语言。while(i--)的 执行时间

2025-04-10 02:16:44
推荐回答(1个)
回答(1):

与i的数据类型有关。
int型2字节
9: while(i--);
C:0x000F EF MOV A,R7 1个指令周期
C:0x0010 1F DEC R7 1个指令周期
C:0x0011 8E83 MOV DPH(0x83),R6 2个指令周期
C:0x0013 7001 JNZ C:0016 2个指令周期
C:0x0015 1E DEC R6 1个指令周期
C:0x0016 4583 ORL A,DPH(0x83) 1个指令周期
C:0x0018 70F5 JNZ C:000F 2个指令周期
9*(r7+1)+(256*9+1)*r6+1个指令周期
char型1字节
12: while(a--);
C:0x0027 AF05 MOV R7,0x05 2个指令周期
C:0x0029 1D DEC R5 1个指令周期
C:0x002A EF MOV A,R7 1个指令周期
C:0x002B 70FA JNZ C:0027 2个指令周期
6*(r5+1)个指令周期
此应用每个指令周期1us。(1e-6s)
已上是keil C 4的编译器的结果。