<div dir="ltr">Ok,<div>I did find the answer:</div><div>It gets patched in Modules.Load</div><div><br></div><div>j.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 23, 2015 at 5:24 PM, Jan de Kruyf <span dir="ltr"><<a href="mailto:jan.de.kruyf@gmail.com" target="_blank">jan.de.kruyf@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hallo,<div><br></div><div>I stumbled onto something I do not understand, but perhaps there is a compiler specialist.</div><div><br></div><div>Here it is:</div><div><div>MODULE Test1;</div><div>VAR t : INTEGER;</div><div>BEGIN</div><div> t := 9;</div><div>END Test1.</div></div><div><br></div><div><br></div><div><div>code</div><div> 0 4EE90004 SUB SP SP 4</div><div> 1 AFE00000 STR LNK SP 0</div><div> 2 40000009 MOV R0 R0 9</div><div> 3 8D000003 LDR SB R0 3</div><div> 4 A0D00000 STR R0 SB 0</div><div> 5 8FE00000 LDR LNK SP 0</div><div> 6 4EE80004 ADD SP SP 4</div><div> 7 C700000F B LNK</div></div><div><br></div><div><br></div><div>So I assign '9' to 'local' global variable 't'.</div><div><br></div><div>In line 2 constant 9 is moved into R0</div><div>in line 3 SB is loaded with the data from [R0 + 3]</div><div>in line 4 R0 is stored in [SB + 3]</div><div><br></div><div>So R0 is overwritten, unless this is patched by the module loader.</div><div><br></div><div>But the book says that line 3 was designed to read:</div><div><br></div><div>LDR SB R12 3 ;(section 12.7.9 -- 2nd last paragraph)</div><div><br></div><div><br></div><div>Does anyone know what is up here?</div><div><br></div><div>Thanks,</div><div><br></div><div>j.</div><div><br></div><div><br></div><div> </div></div>
</blockquote></div><br></div>