cezalinho,
Suppose the assembler's address pointer is at 1483 when it encounters "label1" in your text source code. Then your list code showing exactly what got assembled would show this line, with the address and the two bytes
Code:
1483 A9 3C
at the left end, since A9 is the op code for LDA immediate, and 3C is hex for 60. (That's pretty normal so far.) Then
Code:
LDA label1
(not immediate, but absolute, like you had it) would assemble AD 83 14, and when you run it, would read the A9 byte from address 1483 and put that A9 into the accumulator. An accumulator-load instruction using this absolute addressing of a piece of code instead of something like data or I/O would not be very useful.
If you do
Code:
LDA #label1
(note that it's immediate, represented byt the "#") then the assembler would grab the address, $1483, (not the contents of that address at run time) and try to assemble that address as the operand; but since the 6502 is limited to one-byte operands for immediate addressing, the high byte would be lost and you get A9 83, which would just put $83 in the accumulator, without ever looking to see what's at address $1483. This would not be useful very often either.
There's no problem using a label for a piece of program that starts with LDA# of course; but labels for variables will be a different usage. As kc5tja alluded to, there are lots of ways to address a variable or table. You would do well to read WDC's programming manual which is available for free download at
http://www.westerndesigncenter.com/wdc/downloads.cfm by clicking on "Assembly Language Programming Manual for the W65C02 and W65C816" in the box labeled "Systems".
To address the simplest form, variables may have names (ie, labels) like FLIGHT_TIME, COUNTER, or anything else that follows the normal rules for labels in your assembler, followed by how many bytes of memory to reserve for the particular variable. For an example right out of one of my applicatons,
Code:
T2_PERIODS: BLKB 2 ; Free-run counter for time ref.
KEY_TIME: BLKB 2 ; Record when to beep or begin repeating.
PTT_TIME: BLKB 1 ; To know when to warn of likely PTT-stuck condx.
The BLKB above is the 2500AD assembler directive for advancing the address pointer so many bytes, in this case to leave two bytes for T2_PERIODS, two for KEY_TIME, and one for PTT_TIME. If you put these in page zero for quicker, denser code, and suppose T2_PERIODS is put at $004B, then T2_PERIODS can be a two-byte variable using addresses $004B and $004C, KEY_TIME can be a two-byte variable using $004D and $004E, and PTT_TIME can be a 1-byte variable using $004F, leaving $0050 as the next available byte.