<div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Sep 4, 2021 at 11:53 AM duilio foschi via lazarus <<a href="mailto:lazarus@lists.lazarus-ide.org">lazarus@lists.lazarus-ide.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I followed Bart's suggestion and added the -al switch to the fpc.cfg file.<br><br>This was probably the right move, as - after a new compile - I could see<br>the wanted .s file beside the regular EXE.<br><br>I uploaded the .s file here:<br><a href="https://mega.nz/file/rlpyHa7b#fx0LYTjapmUdFRkzVGCCzFFogqYuEu7UvYQ5HtilLks" target="_blank">https://mega.nz/file/rlpyHa7b#fx0LYTjapmUdFRkzVGCCzFFogqYuEu7UvYQ5HtilLks</a><br><br>I opened the new .s file with a text editor and had a new surprising result: the instruction<br><br>i:=cmbYear.ItemIndex+2005;<br><br>is nowhere to be found.<br></div></blockquote><div><br></div><div>The assembler file you posted is for the .lpr file only.  The -al option generates the assembler files per compilation unit, before the project gets linked.  Also it doesn't show the machine code (this resides in the compiled object file), which seems to be what you want to inspect/modify.<br></div></div><div class="gmail_quote"><br></div><div class="gmail_quote">The easiest way to see both the machine code, the disassembled code and the Pascal code from inside Lazarus is to place a breakpoint on the line of interest, run until you hit that breakpoint, then switch to the Assembler view.  <br></div><div class="gmail_quote"><br></div><div class="gmail_quote">An alternative is to use a tool such as objdump or dumpbin to disassemble the executable file.  There are options to include source code lines in the output if available as debug information.<br></div></div>