Hallo, guten tag. Ich nutze den MASM für DOS. Was heisst bitte das "Uses SI" im Kopf , oder auch dieses Uses im anderen Programm : StringInfo Proc Uses SI DI BX ES Danke. ---------------------------------- .model medium,basic .code .286 public SumArray SumArray Proc Uses SI, Array:DWord, NumEls:Word, Sum:Word Push DS ;save DS so we can restore it later Push SI ;PDS far strings require saving SI too .... ..... ---------------------------------
Versuch mal ein English-Deutsch Wörterbuch. Das Grundwort ist „use“
Peter B. schrieb: > Hallo, guten tag. > Ich nutze den MASM für DOS. > > Was heisst bitte das "Uses SI" im Kopf , Wenn du mit invoke arbeitest werden diese register automatisch gesichert und restored, soweit ich das noch richtig weiss Btw: Mit https://www.scummvm.org/news/20180331/ ida freeware 5 (nicht 7) kannst du wunderbar die sich ergebende exe/com datei anschauen und den asm code verstehen
Peter B. schrieb: > danke für die Info. Könnte auch ohne invoke gehen, einfach mal die exe oder obj mit ida anschauen, dann siehst du schnell was der assembler macht
Siehe page 147 Der Assembler erzeugt zusätzlich Push und Pop Befehle in Prolog und Epilog um die angegebenen Register zu sichern. Man muss das also nicht mehr selbst machen. Über den Sinn dieser Aufzählung kann man sicher streiten. Wenn man die Liste immer aktuell hält ist das sicher ein Weg. Vorteil ist sicher dass der Assembler die Reihenfolge im Griff hat und deshalb keine Tippfehler passieren können. Um bei deinem Codeschnipsel zu bleiben. Da ist das Push si nicht notwendig da SI in der uses Liste auftaucht. SI landet also doppelt auf dem Stack. Thomas
:
Bearbeitet durch User
Danke. Dieses IDA ist eine tolle Sache.
cppbert schrieb: > Peter B. schrieb: >> Danke. >> >> Dieses IDA ist eine tolle Sache. > > Ja das ist er Ghidra ist auch nicht schlecht aber nicht ganz so einfach zu bedienen wie IDA
Thomas Z. schrieb: > Der Assembler erzeugt zusätzlich Push und Pop Befehle in Prolog und > Epilog um die angegebenen Register zu sichern. Man muss das also nicht > mehr selbst machen. Über den Sinn dieser Aufzählung kann man sicher > streiten. Zumindest ist der Code bei z.B. Stringverarbeitenen (Autoloop-)Befehlen ein kleines bisschen transparenter. https://de.wikibooks.org/wiki/Assembler-Programmierung_f%C3%BCr_x86-Prozessoren/_Stringbefehle In dem Assemblercode von dem MS-Dos "Debug" Programm werden die z.B. häufiger benutzt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.