I used keil2 to compile it for you and there were no errors. I chose Atmel's 89c52 microcontroller.
First make sure there are no problems with the compilation software you use and install it correctly. If it is not a software problem, the answer to your error message is as follows:
warning1: The message says that memory addresses 0000H to 0002H are reused. The program "ORG 0000H SJMP MAIN" you wrote occupies this part of the address. The reason for the error may be that some types of microcontrollers reserve certain parts of the memory address and do not give users the right to use it. Or maybe this part of memory is also used in your other source programs in this project. Then if you write a program at this time, you will definitely get an error. You can try changing this address to see if the problem can be solved.
warning2: It prompts that an external label cannot be determined. It means that one of your external variables called C_START is declared in the header file but not defined. Just define it in the program.
The third warning is also due to this reason, saying that you did not define this variable.
I guess this is a mixed programming of C language and assembly language. This is just a part of the program. You can't find the real problem just by looking at this part.