2

In LX format description in section 3.13 Fixup Record Table, when describing SRC = DB Source type field there is such an option:

06h = 16:32 Pointer fixup (48-bits).

1. How many bytes does this fixup change and how? I found a particular example of such fixup, it points to 2nd byte of a certain jump instruction:

66EA665544332211 jmp dword 0x1122:0x33445566

I assume it at least changes 4-byte offset (33445566), but does it also change 16 bit selector (1122)?

2. Where can I find more in-depth description of different fixup kinds? IBM doc seems to assume it to be common knowledge.

Uprooted
  • 185
  • 6
  • 1
    For more information about LX (16-bit Linear Executable) fixup types, see http://www.textfiles.com/programming/FORMATS/lxexe.txt in the section entitled "Fixup Record Table" – fpmurphy Jun 05 '23 at 12:07

1 Answers1

1

For such fixup both selector and offset parts are patched so that they point to the actual location of the fixup's target.

Igor Skochinsky
  • 36,553
  • 7
  • 65
  • 115
  • I suppose you're right, yet it's unclear where selector comes from, fixup record contains only 'target' field for 32 bit offset part. I should ask another question with concrete fixup data. – Uprooted Jun 08 '23 at 14:28
  • 1
    selector comes from wherever the target segment was actually loaded in the memory – Igor Skochinsky Jun 09 '23 at 20:44