This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

adding a assembly file to project

Hi all

I want to add Asm file to a 'C' project.
Project has one '.c'and one '.h' file.

Assmbly file to be added is with '.a51' extension.only one routine is added to a51 file,which is called from main.A51 file is getting assembled successfully,but project is not getting compiled as whole.

decleration in main file is :

extern void delay_asm(unsigned char);

void main()
{
   .
   delay_asm(2);
   .
}


Assembly file is as given below

PR?delay_asm?delay_asm SEGMENT CODE

PUBLIC delay_asm

delay_asm:
   USING 0
   mov a,R7
rv:dec A
   Jnz rv
   RET

END

on project compilation:

warning L5:Code space overlap
From:0000H
To:0004H
warning L2:Refrence made to unresolved
external _delay_asm
Target not created.

This warnings where not generated before adding a51 file to project.

i am missing some thing small here,but any help would be appreciated.

Regards
Naresh

Parents
  • can i write

    mov DPTR,var_int

    No - Although the 8051 does a decent job manipulating the 16 bit DPTR, it is an 8 bit processor and just can't do this in one instruction. The DPTR can be loaded with a constant value in one fell sweep, but not with the value contained in a variable.

    Stick with:

    mov A,R7 ;take low byte of var_int to acc
    .. ; logic oprns
    mov A,R6 ;take high byte of var_int to acc

    or, if you want this value in DPTR do:

    mov DPL, R7 ;DPL is low byte of DPTR
    mov DPH, R6 ;DPH is high byte of DPTR

    Bill

Reply
  • can i write

    mov DPTR,var_int

    No - Although the 8051 does a decent job manipulating the 16 bit DPTR, it is an 8 bit processor and just can't do this in one instruction. The DPTR can be loaded with a constant value in one fell sweep, but not with the value contained in a variable.

    Stick with:

    mov A,R7 ;take low byte of var_int to acc
    .. ; logic oprns
    mov A,R6 ;take high byte of var_int to acc

    or, if you want this value in DPTR do:

    mov DPL, R7 ;DPL is low byte of DPTR
    mov DPH, R6 ;DPH is high byte of DPTR

    Bill

Children