title: Why am I getting an "expected register or immediate value" error?
body: <p>This is my Lc3 Assembly code</p>
  
  <pre><code>.ORIG x3000
  AND R0,R0, #0
  AND R2,R2, #0
  ADD R2,R2, #7
  JSR SUB
  ADD R2,R2, ASCII
  ADD R0,R2,#0
  TRAP x21
  SUB   ADD R2,R2,#9
  ADD R7,R7,#1
  RET
  HALT
  ASCII .FILL x0000
  .END
  </code></pre>
  
  <p>When I try to assembly the code, I got these errors 
  <img src="https://i.stack.imgur.com/OUHvw.png" alt="enter image description here"></p>
  
  <p>I know that pass 1 refers to the first step in the assembly process which is to add variables and what values they are holding to the symbol table. I know that step 2 is to substitute values using the symbol table. (Using <a href="https://classes.soe.ucsc.edu/cmpe012/Winter09/lectures/06_LC3_Assembly.pdf" rel="nofollow noreferrer">Lc3 Assembly</a> as a reference)</p>
  
  <p>Can anyone explain why the assembler is trying to substitute in the first pass and causing the error? Shouldn't pass 1 be recognizing ASCII as a variable that holds x0001 and not attempting to substitute it?</p>