![]() |
[Delphi/Assembly] Delen van 2 Integers
Hoe deel je 2 (32-bit) Integers m.b.v. assembly in Delphi?
Het getal wat gedeeld moet worden zit in EDX:EAX. Het getal waardoor gedeeld wordt is 32-bits. En het antwoord (zonder rest) komt in AX. De rest komt in DX te staan. Code:
function TForm1.AsmDivI(p1: Integer; p2: Integer): Integer; Dus, hoe verdeel ik de 32-bits Integer over de EDX:EAX. En ik geef nu alleen het antwoord terug, maar ik moet ook de rest teruggeven. Hoe doe ik dat? Kan ik AX en DX op een bepaalde manier in "v" zetten? En hoe doe ik dat dan? |
Kan je dit niet evengoed in Object Pascal zelf doen met behulp van de div- en mod-operatoren? Je zal die beide registers wel kunnen uitlezen me wat assembler.
|
Citaat:
|
Citaat:
|
Citaat:
src is geen word maar een dubbele dword (32-bits Integer). Ik heb mijn info over IDIV van: ftp://download.intel.com/design/pent...als/253666.htm Maar ik moet in Delphi een Integer verdelen in 2 words. Ik vroeg me af hoe ik dat zou moeten doen in assembly in Delphi. Maar ik denk dat ik iets met PTR ga proberen. Maar als iemand een methode kent die gebruikelijk is, als PTR methode niet gebruikelijk is. |
Citaat:
Code:
mov AX, 11 |
Citaat:
Ik sprak geloof ik over 1 dword: Citaat:
Ik moet dus zelf de mapping maken van Integer's naar DWord's voor Delphi. Ik zal die mapping nog proberen d.m.v. iets als: Code:
mov EAX, WORD PTR [&v] Ik zou het eerst inderdaad eens zonder parameters kunnen proberen. |
Mijn God, ben ik trouwens even blij dat ik binnenkort wat geheugen erbij krijg.
Zaken als NetBeans en Eclipse vergallen mijn leven op dit moment. Delphi gaat nog wel. |
Alle tijden zijn GMT +1. Het is nu 10:33. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.