Forum: Programmieren allgemein
by Flocke,
4. Jul 2006
Da MessageBoxA dir das Ergebnis in EAX zurückliefert ist der Inhalt beim Aufruf irrelevant.
Die CPU interessiert eigentlich das Vorzeichen überhaupt nicht, Integer und Cardinal werden mit denselben Maschinenbefehlen addiert und subtrahiert. Da die CPU hier modulo 2^32 rechnet kommt das selbe heraus.
Alle "near jumps" sind PC-relativ, man gibt also nur den Adressversatz an und nicht die...
Forum: Programmieren allgemein
by Flocke,
4. Jul 2006
Der Opcode für einen direkten unbedingten Sprung ist $E9 - das wird dir aber nicht viel helfen: danach muss nämlich nicht die Zieladresse angegeben werden sondern das "Displacement", also die Differenz zwischen der neuen und der aktuellen Code-Adresse. Darum erzeugen Assembler für so einen Befehl auch eine Relokation - der Linker muss die Adressdifferenz beim Binden nämlich erst noch berechnen.
...