AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[ASM] STOSB

Ein Thema von moritz · begonnen am 5. Okt 2004 · letzter Beitrag vom 6. Okt 2004
Antwort Antwort
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#1

[ASM] STOSB

  Alt 5. Okt 2004, 17:44
Hi Leute,

ich habe ein Problem mit STOS(B). Ich habe einen String definiert
Code:
willkommen DB "Herzlich willkommen!"
und ändere ihn dann mit
Code:
    PUSH DS
    POP ES
    MOV AX , "t"
    MOV DI , OFFSET willkommen + 0 ; (bzw. 1, 2 oder 3)
    STOSB
für jeden Buchstaben von Test. Als erstes weiß ich dass im Moment umständlich ist und ich mit STOSD besser beraten wäre, aber das hat ja ich Moment keine Auswirkungen.
Auf jeden Fall, wenn ich willkommen danach ausgebe, bekomme ich ein
"testlich willkommen!"
Passt zwar auch, ist aber nicht das was ich will

Könnt ihr mir helfen?

Gruß

Edit: Mir fällt eben auch auf dass, wenn der definiertes string kürzer ist als test, asl z.b. "on", komiche fehlerauftreten. Wie kann ich denn mehr SPeicherplatz dazutun oder muss ich von Anfang an genug reservieren? Wenn ja, kann ich den irgendwie mit ASCII-Nichts Zeichen füllen?

(Andere problembeschreibung:
Ich muss den "String" im Prinzip von 0-250 Zeichen voll benutzen können, jederzeit mehr zeichen (also bis zu 250) eintragen können und er sollte halt die restlichen nicht anzeigen. kann ich den speicher irgendwie freigeben? Einfach eine 0 in den Speicher schreiben?)
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: [ASM] STOSB

  Alt 5. Okt 2004, 23:34
Moin!

Wenn du nicht zur Laufzeit dir Speicher holst, dann musst du im Code für genug Speicherplatz sorgen (db dup als Stichwort). Ansonsten ist die Frage mit dem Ende des Strings eher die Frage danach, mit welcher Funktion du diesen ausgibst. Die BIOS Routinen wollen immer ein \0 am Ende sehen (also ein Nullbyte) und die DOS String Ausgabe will ein $ am Ende sehen...

Dann fällt mir noch auf, was du das Richtungsflag überhaupt nicht setzt....

MfG
Muetze1
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: [ASM] STOSB

  Alt 6. Okt 2004, 05:55
Hallo,

ich arbeite in Dos. Aber ich hab das Problem eben gelöst: DUP 200 ("$) geht sehr schön
Das Richtungsflag muss ich mit cld setzten, oder?

Gruß, moritz
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: [ASM] STOSB

  Alt 6. Okt 2004, 08:37
Moin!

cld = clear direction flag
std = set direction flag

Das wären die beiden Befehle dafür...

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz