26.07.2013 Views

Operativsystem: .............................................................

Operativsystem: .............................................................

Operativsystem: .............................................................

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

dvs push strengen i den lokale variabel paa stacken:<br />

ldloc.2<br />

call void [mscorlib] System.Console::WriteLine(string)<br />

ret<br />

}<br />

}<br />

At programmere i IL betyder at man hele tiden lægger værdier i og henter værdier fra metodens<br />

stack! Et eksempel er slutningen:<br />

ldstr "\nSLUT: Dette var IL assembler kode!"<br />

call void [mscorlib] System.Console::WriteLine(string)<br />

//dvs push strengen i den lokale variabel paa stacken:<br />

ldloc.2<br />

call void [mscorlib] System.Console::WriteLine(string)<br />

ldstr lægger strengen oven i stacken. Når metoden WriteLine() kaldes tager den simpelthen den<br />

værdi der ligger øverst i stacken og udskriver den!<br />

Ved at studere IL kode får man altså et mere præcist billede af, hvad der rent faktisk foregår i et C#<br />

program. Vi kan også se, at løkker (som i C# hedder for, while, do osv) alle sammen i IL<br />

implementeres som branch som fx:<br />

br Igen<br />

der betyder: Hop tilbage til den label der hedder ’Igen:’! Dette svarer til goto sætninger i C#!<br />

Variable i en metode i IL er typisk uden navn og identificeres kun ved deres nummer i en række! Fx<br />

opererer metoden ovenfor med 2 int variable og en streng variabel.<br />

Programmering i IL ligner meget anden assembler programmering – som stort set altid foregår efter<br />

samme model.<br />

Dis-assembling, utilities:<br />

Der kan downloades shareware programmer som kan arbejde med IL kode, producere IL kode fra<br />

EXE filer (disassemble) osv. Ved at bruge sådanne programmer kan man – i et vist omfang – lave<br />

’reverse engineering’ (konstruere kode fra binære filer) og i al fald få en bedre forståelse for<br />

mekanismer i C# og .NET!<br />

Her er et eksempel, hvor en DLL fil vises i programmet .NET Explorer fra<br />

http://www.remotesoft.com:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!