shorting amtel chip
The .LST file (list) is a text file that is actually a listing of your program with the actual addresses and opcodes of the instructions and some other info, such as title, page headers,etc.
The .OBJ (object) file can be used by a linker to link your program to other .OBJ files to form a final program. This is the case if your program is divided in smaller parts.
Most likely your entire program is in one file so you do not need to worry about these.
The .HEX (Intel HEX) is the file that you use to actually program the part. It contains in a special format all the opcodes of the instructions, plus some of the addresses. The programmer uses it to actually place the opcodes in the part's memory. The special format actually splits every byte in the opcode/ address into the two nibbles and then each nibble is converted to its ASCII equivalent.
For example, code 35H becomes 33H 35H, code 5AH becomes 35H 41H and so on.
It also contains checksums for each record (a record is one line, begining with the address, number of bytes in record, type of data to follow, actual data, checksum).
All this info and encoding is used by the programmer to make sure the data did not get corrupted when travelling to it from the PC.
For more info on the .HEX format, follow this link:
https://www.keil.com/support/docs/1584.htm
Instead of offset you will actually have absolute addresses.
Lengthy and incomplete explanation... The short answer is you need to use the .HEX file with your programmer to actually program the part.