Hi,
I'm trying to find what ASM code PBP produces for a specific routine. I'm doing this for two reasons:
1) To learn more about ASM and how PBP works and
2) To find out which system variables and registers the routine may use. (So I can save only the needed ones during a "PBP ASM interrupt")
For example, I compile this code:
Code:
If PIR1.5 THEN
RxBuffer[RxPtr] = RCREG
If RxBuffer[RxPtr] = 13 THEN
ReceivedCR = 1
ENDIF
RxPtr = RxPtr + 1
If RxPtr = BufferLength THEN
RxPtr = 0
ENDIF
Looking at the bottom of the generated ASM file I find this:
Code:
AIN?BBB RCREG, _RxBuffer, _RxPtr
AOUT?BBB _RxBuffer, _RxPtr, T1
CMPNE?BCL T1, 00Dh, L00003
MOVE?CT 001h, _ReceivedCR
LABEL?L L00003
ADD?BCB _RxPtr, 001h, _RxPtr
CMPNE?BCL _RxPtr, _BufferLength, L00005
MOVE?CB 000h, _RxPtr
LABEL?L L00005
LABEL?L L00001
END
This doesn't look much like the ASM I've seen before.... ;-) But between the above ASM file and the LST file I think I've come to the conclusion that I need to save T1 and the FSR0 registers for the above PBP code to work as an "ASM interrupt" without disturbing the PBP main program. Or is it not that "simple"?
I guess my question is: Is there a way to get a file containing only the ASM code that will actually generate the final .hex file and not all the "extra" that is in the LST file?
Thanks!
/Henrik.
Bookmarks