单片机C51,将汇编语言转换为C语言

2025-03-01 22:51:17
推荐回答(2个)
回答1:

#include
#define u8 unsigned char
#define u16 unsigned int
#define BufSize 0x10
u8 buf[BufSize];
u8 js=0;

void main(){
SCON=0x80;
PCON=0x80;
EA=1;
ES=1;
ACC=buf[0];
TB8=P;
SBUF=ACC;
while(1);

}


void TRANI()interrupt 4
{
TI=0;
js++;
if(js==BufSize){
ES=0;
}
else{
ACC=buf[js];
TB8=P;
SBUF=ACC;

}

}

顺便优化汇编代码

        BUF 	EQU	0X50
ORG 0000H
JMP MAIN
ORG 0023H
JMP TRANI
MAIN:
MOV SCON,#0X80;
MOV PCON,#0X80
SETB EA
SETB ES
MOV R0,#BUF

MOV A,@R0
MOV C,P
MOV TB8,C
MOV SBUF,A
JMP $

TRANI:
PUSH PSW
PUSH ACC

INC R0
CJNE R0,#BUF+0x10,NEXT
JMP TEND

NEXT: MOV A,@R0
MOV C,P
MOV TB8,C
MOV SBUF,A

TEND:
POP ACC
POP PSW
RETI

回答2:

你好懒,直接照个相将图片贴上来了, 输入汇编源码可以找我给你翻译成C