wie in asm cin machen?
-
wie programmiert man in Assembler zum Beispiel Funktionen cin von c++.
cin um eine eingabe aufzunehmen.
wie kann ich,
wenn etwas(ein Wert) in einer speicherstelle, z.b. ax ist
wieder auf den bildschirm ausgeben(den Wert)
-
Hi.
Servus schrieb:
wie programmiert man in Assembler zum Beispiel Funktionen cin von c++.
Das kommt in erster Linie ziemlich darauf an, fuer welches OS du programmierst.
Servus schrieb:
wie kann ich,
wenn etwas(ein Wert) in einer speicherstelle, z.b. ax ist
wieder auf den bildschirm ausgeben(den Wert)Moment: Speicherstelle? ax? Soll das hier etwas miteinander zu tun haben?
=>ax ist ein Register.Im Grunde genommen musst du ax so oft durch die Anzahl der Ziffern des Zahlensystems, das du in lesbarer Form ausgeben willst, dividieren, bis nichts mehr uebrig bleibt.
Den Rest jeder Division musst du jeweils sichern.
Zum schluss wandelst du dann die gespeicherten Ziffern in umgekehrter Reihenfolge, in der sie zuvor abgelegt wurden, in die (ASCII-)Zeichen um, die nachher ausgegeben werden sollen.Beispiel:
Im dezimalsystem gibt es bekanntlich 10 Ziffern.
Folglich koennte das so aussehen://Mein toller Pseudocode: ZiffernNummer = 0; while (Zahl > 0) { Ausgabe[ZiffernNummer] = Zahl % 10; Zahl = Zahl / 10; ZiffernNummer++; } For (; ZiffernNummer > 0; ZiffernNummer--) { cout << Ausgabe[ZiffernNummer - 1] | 0x30; //30h ist ASCII "0" }
-
ich will zum beispiel einen wert in das register ax legen.
z.bzähler db ?
mov ax,zählerjetzt will ich den wert der im ax-register gespeichert ist auf dem bildschirm ausgeben lassen!wie kann ich sowas machen????
-
Wenn dir die Ausfuehrungen in meinem letzten Beitrag zu kompliziert/konfus waren: Hier hat jemand auch gleich noch einen Assemblerquellcode gepostet...
BTW:
Wenn du jetzt nur wissen willst, wie du Zahlen auf dem Bildschirm ausgeben kannst, ist das Threadthema falsch gewaehlt.
-
ich will ja nicht irgendeine zahl ausgeben.
wenn z.b der wert 10 im register ax gespeichert ist.
will ich jetzt den wert ausgeben.
nachricht db 'ax' ;der wert des registers ax soll ausgegeben werden.
-
Hm... Liest du eigentlich meine Beitraege nicht richtig, verstehst du sie - aus welchen Gruenden auch immer - nicht, oder legst du es jetzt darauf an, dass dir jemand einen genau auf deine Wuensche zugeschnittenen Quellcode postet (was uebrigens sogar schon passiert ist, wenn du dir den Beitrag, auf den ich gelinkt habe, mal genauer ansiehst
)?
-
ich habe eigentlich folgendes vor:
c++ code:
#include <iostream.h>
int Add (int x, int y)
{
cout << "In Add(), erhalten " << x << " und " << y << "\n";
return (x+y);
}int main()
{
cout << "Ich bin in main()!\n";
int a, b, c;
cout << "Geben Sie zwei Zahlen ein: ";
cin >> a;
cin >> b;
cout << "\nAufruf von Add()\n";
c = Add(a,b);
cout << "\nZurueck in main().\n";
cout << "c wurde gesetzt auf " << c;
cout << "\nBeenden...\n\n";
return 0;
}ICh will also ein Additionsprogramm machen in Assembler.
Zuerst sollen Zahlen eingegeben werden, die dann addiert werden.
Weiß nicht wie ich so was anstellen soll.
Tut mir leid Nobuo T, danke für deine Geduld.
-
Steht immernoch die Frage im Raume: Auf welchem Betriebssystem soll dein Programm laufen??
Um ein cin oder cout neu zu schreiben, musst du wohl oder uebel auf bestimmte Funktionen dieses Betriebssystems zurueckgreifen.