title: Edsim51 Always Invalid Label Error
body: <p>I'm using <a href="http://www.edsim51.com/" rel="nofollow">EDSIM51</a> on MacOS. But I'm always getting <strong>Invalid Label - **** is keyword</strong> errors. Read documentation (<em>User's Guide</em> and <em>Examples</em> pages) but still no idea where I'm making mistake. I've downloaded example codes from Edsim's website, but it's giving same error for their official examples.</p>
  
  <p>For example,
  This is an LCD example which taken from their website:</p>
  
  <pre><code>; put data in RAM
      MOV 30H, #'A'
      MOV 31H, #'B'
      MOV 32H, #'C'
      MOV 33H, #0 ; end of data marker
  
  
  ; initialise the display
  ; see instruction set for details
  
  
      CLR P1.3        ; clear RS - indicates that instructions are being sent to the module
  
  ; function set  
      CLR P1.7        ; |
      CLR P1.6        ; |
      SETB P1.5       ; |
      CLR P1.4        ; | high nibble set
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
  
      CALL delay      ; wait for BF to clear  
                      ; function set sent for first time - tells module to go into 4-bit mode
  ; Why is function set high nibble sent twice? See 4-bit operation on pages 39 and 42 of HD44780.pdf.
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
                      ; same function set high nibble sent a second time
  
      SETB P1.7       ; low nibble set (only P1.7 needed to be changed)
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
                  ; function set low nibble sent
      CALL delay      ; wait for BF to clear
  
  
  ; entry mode set
  ; set to increment with no shift
      CLR P1.7        ; |
      CLR P1.6        ; |
      CLR P1.5        ; |
      CLR P1.4        ; | high nibble set
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
  
      SETB P1.6       ; |
      SETB P1.5       ; |low nibble set
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
  
      CALL delay      ; wait for BF to clear
  
  
  ; display on/off control
  ; the display is turned on, the cursor is turned on and blinking is turned on
      CLR P1.7        ; |
      CLR P1.6        ; |
      CLR P1.5        ; |
      CLR P1.4        ; | high nibble set
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
  
      SETB P1.7       ; |
      SETB P1.6       ; |
      SETB P1.5       ; |
      SETB P1.4       ; | low nibble set
  
      SETB P1.2       ; |
      CLR P1.2        ; | negative edge on E
  
      CALL delay      ; wait for BF to clear
  
  
  ; send data
      SETB P1.3       ; clear RS - indicates that data is being sent to module
      MOV R1, #30H    ; data to be sent to LCD is stored in 8051 RAM, starting at location 30H
  loop:
      MOV A, @R1      ; move data pointed to by R1 to A
      JZ finish       ; if A is 0, then end of data has been reached - jump out of loop
      CALL sendCharacter  ; send data in A to LCD module
      INC R1          ; point to next piece of data
      JMP loop        ; repeat
  
  finish:
      JMP $
  
  
  sendCharacter:
      MOV C, ACC.7        ; |
      MOV P1.7, C         ; |
      MOV C, ACC.6        ; |
      MOV P1.6, C         ; |
      MOV C, ACC.5        ; |
      MOV P1.5, C         ; |
      MOV C, ACC.4        ; |
      MOV P1.4, C         ; | high nibble set
  
      SETB P1.2           ; |
      CLR P1.2            ; | negative edge on E
  
      MOV C, ACC.3        ; |
      MOV P1.7, C         ; |
      MOV C, ACC.2        ; |
      MOV P1.6, C         ; |
      MOV C, ACC.1        ; |
      MOV P1.5, C         ; |
      MOV C, ACC.0        ; |
      MOV P1.4, C         ; | low nibble set
  
      SETB P1.2           ; |
      CLR P1.2            ; | negative edge on E
  
      CALL delay          ; wait for BF to clear
  
  delay:
      MOV R0, #50
      DJNZ R0, $
      RET
  </code></pre>
  
  <p>**AND ERROR : ** Invalid Label - FİNİSH is keyword</p>
  
  <p>Can you please tell me what is I'm missing?</p>