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“
Gast
#6197306
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
danke für die Info.
Gast
#6197378
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
Danke. Dieses IDA ist eine tolle Sache.
Gast
#6197936
Peter B. schrieb: > Danke. > > Dieses IDA ist eine tolle Sache. Ja das ist er
Gast
#6197980
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
Gast
#6198013
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.