单片机源代码C语言怎么转化回汇编语言啊,就是带MOV,JMP的种

来源:百度知道 编辑:UC知道 时间:2024/09/19 16:27:38
#include <at89x51.h>
unsigned char code dispcode[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
unsigned char code dispbitcode[]={0xfe,0xfd,0xfb};//
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned int intv,decv;
unsigned char dispbuf[]={0,0,0};
unsigned char dispcount;
void main(void)
{ unsigned char i;
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;
Intv=2;
decv=0;
P0=0x14;
dispcount=0;
dispbuf[0]=intv/10;
dispbuf[1]=intv%10;
dispbuf[2]=decv;
while(1)
{ if (P3_1==0 & intv<20)
{ for (i=245;i>0;i--);
if (P3_1==0)
{ if (decv==9)
{ intv=intv+1;
decv=0;
}
else
{ decv=decv+1;
}
P0=P0+1;
while (P3_1==0);
}
}
if (P3_0==0

以下为我帮你编的汇编代码,非反编译C代码的,实现功能与你所给源代码相同
占用资源极少。希望对你有所帮助
E_mail:xuyanyan310@163.com

INTV EQU 0X30
DECV EQU 0X31
DISPCOUNT EQU 0X32
DISPBUF EQU 0X33

ORG 0X0000
AJMP START

ORG 0X0003
AJMP TIMER

ORG 0X0030
START: MOV SP,0X0060
MOV TMOD,0x01
MOV TH0,0XF0
MOV TL0,0X5F
SETB TR0
SETB ET0
SETB EA
MOV INTV,#0X02
MOV DECV,#0X00
MOV DISPCOUNT,#0X00
MOV P0,0X14
MOV DISPBUF,#0X00
MOV DISPBUF+1,#0X00
MOV DISPBUF+2,#0X00

MAIN: MOV A,INTV
SUBB A,#21
JNC MAIN_S4
JB P3.1,MAIN_S4
MOV R7,#245
MAIN_S1: JNB P3.1,MAIN_S3
INC DECV
MOV A,DECV
CJNE A,#10,MAIN_S2
INC INTV
MOV DECV,#00
MAIN_S2: MOV A,P0
INC A
MOV P0,A
JNB P3.1,$
MAIN_S3: DJNZ R7,MAIN_S1
MAIN_S4: JB P3.0,MAIN_END
MOV R7,#245
MAIN_S5: JNB P3.0,MAIN_S7
MOV