AT89S8252 has got 8kb Flash. I've programed for an application. hex file was created with 8.5kb (over) but my system still run well. I don't know why. Who help me?
The Linker Listing file (aka "Map" file) tells you the true size of code.
For BL51, it is .m51; For LX51, it is .map.
http://www.keil.com/support/man/docs/uv3/uv3_b_filetypes.htm
A HEX file has a convention for representing a binary image in ASCII form which in and of itself "expands" the true binary size by a factor of >2. It happens to also include extra address, checksum, record type, start and end characters, etc. for each HEX "record".
View all questions in Keil forum