SumArray Proc Uses SI, Was heisst bitte das Uses bei MASM?

OP #6197291
Lesenswert?
• ▲
▼
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
....
.....
---------------------------------
Gast #6197306
Lesenswert?
• ▲
▼
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
#6197740
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
Gast #6198013
Lesenswert?
• ▲
▼
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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.