1.代码
#include<reg52.h>
void delay(int t){
for( ;t!=0; t--);
}
void main()
{
unsigned int i;
unsigned int istay=9;
int step[4];
step[0]=3; //0011
step[1]=6; //0110
step[2]=12; //1100
step[3]=9; //1001
while(1)
{
for(i=0;i<4;i++)
{
P2=step[i];
delay(istay);
}
}
}
2. 编译后的混合模式(mixed mode)
3.撇开main函数的主体部分,先直接找到delay函数主体,其汇编代码为
22: delay(istay);
C:0x0829 AF05 MOV R7,0x05
C:0x082B AE04 MOV R6,0x04
C:0x082D 12083D LCALL delay(C:083D)
上面将0x05送到R7,0X04送到R6.
3: void delay(int t){
4: for( ;t!=0; t--);
C:0x083D EF MOV A,R7
C:0x083E 4E ORL A,R6
C:0x083F 6007 JZ C:0848
C:0x0841 EF MOV A,R7
C:0x0842 1F DEC R7
C:0x0843 70F8 JNZ delay(C:083D)
C:0x0845 1E DEC R6
C:0x0846 80F5 SJMP delay(C:083D)
5: }
C:0x0848 22 RET
.
待完成。。。