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

Memory model

hi,
i'm using 89c51 and i made a program with memory model SMALL (is it ok? because all i know SMALL only for 89c51)

and i have some problem, after i compiled it can't create a target file because 'Address Space Overflow'.

what is that mean? -> 'Address Space Overflow'

and if i want to put a variable in the upper 128 bytes of 89c52, how can i do it?

and in my program, if i need a variable ijust define it and doesn't using data,idata,bdata. so since i dont define it where exactly compiler put it in memory?

sincerly,
hardian
hardian_97@yahoo.com

  • SMALL memory model will place the implicit declared variables in the data segment. If you choose compact or large model the implicit variables will be placed in the pdata and xdata respectively.

    -> 'Address Space Overflow'

    This error means that you "burned" a memory segment, you didn't described the segment but if you are using Small memory model and, you are asking how to access the upper 128bytes of the internal data RAM, I suppose that you overflowed the data segment.

    Use idata to get full access in the 89c52 internal memory 256bytes ( 00h ~ FFh ).

    Take a look at the manuals, they are really useful.