| |||||
Technical Support Support Resources
Product Information | A51: ACCESSING PDATA VARIABLES IN ASSEMBLERInformation in this article applies to:
SYMPTOMSIn a C source file, I have declared a pdata variable called foo. I wish to access this variable in an assembly module, and I have written the following code to do this: EXTRN XDATA (foo) ... MOV R0, #foo MOV @R0, A However, when I build my project I get: ERROR 121: IMPROPER FIXUP. CAUSEWhile using the EXTRN directive, you have specified the variable as xdata. This is correct since pdata variables are stored in xdata, however, the assembler assigns a 16-bit address to the variable, but only an 8-bit address exists for the pdata variable. RESOLUTIONMove the lower byte of the 16-bit address of the variable into R0. The upper byte will be present on P2 during the memory access. MOV R0, #LOW (foo) Last Reviewed: Tuesday, June 08, 2004 | ||||
| |||||