Two statements from assembly - trying to convert the code in PBasic Pro


Results 1 to 14 of 14

Threaded View

  1. #9
    Join Date
    May 2006
    Location
    Del Rio, TX, USA
    Posts
    343


    Did you find this post helpful? Yes | No

    Default Re: Two statements from assembly - trying to convert the code in PBasic Pro

    In PBP, the label "ISR" will be annotated in assembly as "_ISR" as a literal (i.e. constant). It represents the address of the first instruction following the label in PBP. The address is a 21 bit address. The bottom 8 bits (low byte, bits 0-7) are directly readable/writeable. The high byte (bits 8-15) and upper byte (bits 16-20) can only be read/written through the registers PCLATH and PCLATU respectively

    So... You will likely see something like this as well:

    movlw ((INTHAND) >> 16)
    movwf PCLATU

    movlw INTHAND
    movwf PCL


    When PCL is written to, the contents of PCLATH and PCLATU are written to the Program Counter along with the value to the PCL. This will cause the instruction found at that address to be the next instruction executed.

    One other thing. Since INTHAND is a constant, ((INTHAND) >> 16) and ((INTHAND) >> 8) will be evaluated when the program is compiled. So, the actual assembly will only see an 8 bit value.
    Last edited by SteveB; - 14th June 2012 at 18:14. Reason: typos, clarification

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts