So I just posted a "made up" method that had the code stub which I knew would trigger the same problem. To read the value from Self. ![]() Recall that member access implicitly goes through Self, so when you write field in your code, what you really mean is Self.field. So, while I was 99% that it was just a change in register calling convention tripping me up, I couldn't totally rule out that it wasn't some other misunderstanding regarding the change to 圆4. 1 Answer Sorted by: 6 To read a field of an object isnt as simple an ordinary read from memory. In the keyboard mapping (editor options) under 'Run Menu' are also entries: Alt - Shift - F7 or Alt - Shift - F8: 'Step into,over (Context) Those will step asm only if the assembler window is focused, and step pascal otherwise. Those keys will act, independent of the focused window. The only reason I posted any code in the first place (rather than just asking "hey guys, what register passes the reference to self for asm methods in Win64/X64") was that I wasn't completely sure that it wasn't a more fundamental issue. Alt - F7 or Alt - F8: step into/over one asm instruction. I very much appreciate your help and you've pointed out some valuable things to me, but there's no point critiquing that particular code too much, because it was never going to be used anyway. ![]() It's not my actual code, and I would never have really used asm for such a simple method. The mechanism for this is the same as under Turbo Pascal and Delphi. ![]() I should point out that the code I posted was just a stripped down stub to illustrate my immediate problem (of not knowing what register passed the reference to self). Free Pascal supports inserting assembler statements in between Pascal code.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |