linux assembler anfängerfrage

101011

Grünschnabel
Hallo, ich bin wirklich absoluter Anfänger und habe ein kleines Problem:
Ich will die seit 1970 vergagenen Sekunden ermitteln (Systemruf 13). Mein Unterprogramm sieht so aus:

time:
mov eax, 13
mov ebx, 0
int 80h
ret

Jetzt sollte den Sekunden in eax liegen. Aber ich frage mich, in welcher Form: dezimal oder hexadezimal? Und wenn ich das Ergebnis ausgeben möchte: Hat der String vielleicht eine feste Länge oder muss ich die erst ermitteln?
Ich würde mich sehr freuen, wenn jemand etwas Licht ins Dunkel bringt :)
Gruß, 43
 
Hi.
Hallo, ich bin wirklich absoluter Anfänger und habe ein kleines Problem:
Ich will die seit 1970 vergagenen Sekunden ermitteln (Systemruf 13). Mein Unterprogramm sieht so aus:

time:
mov eax, 13
mov ebx, 0
int 80h
ret

Jetzt sollte den Sekunden in eax liegen. Aber ich frage mich, in welcher Form: dezimal oder hexadezimal?
Binär.
Und wenn ich das Ergebnis ausgeben möchte: Hat der String vielleicht eine feste Länge oder muss ich die erst ermitteln?
Welcher String? Das Ergebnis ist eine vorzeichenlose, ganze Zahl.

Gruß
 
ah ja..danke!
Dann hab ich gleich noch eine Frage:
Ich möchte das Ergebnis gerne durch eine andere Zahl teilen.

div [eax], Zahl

Muss die Zahl dann auch Binärform haben oder würde er eine Dezimalzahl automatisch umrechnen? Und wenn nicht, wie mache ich kenntlich, dass es sich bei der Zahl um eine Dualzahl handelt?
Vielen Dank im Vorraus!

Gruß, 43
 
ah ja..danke!
Dann hab ich gleich noch eine Frage:
Ich möchte das Ergebnis gerne durch eine andere Zahl teilen.

div [eax], Zahl

Muss die Zahl dann auch Binärform haben oder würde er eine Dezimalzahl automatisch umrechnen? Und wenn nicht, wie mache ich kenntlich, dass es sich bei der Zahl um eine Dualzahl handelt?
In einem Prozessorregister heute üblicher CPUs wird alles im Binärformat gespeichert - es geht ja nicht anders! Der Assembler übersetzt das Literal was du angibst in die ensprechende Repräsentation einer pos. ganzen Zahl.

Gruß
 
Hallo, ich bins nochmal.
Ich müsste noch wissen, ob es eine Möglichkeit gibt, diese Zahl, die dann in eax steht in Dezimalform auszugeben. Kann er das automatisch oder muss man die Zahl erst umrechnen?
Danke im Vorraus für eine Antwort :)

Gruß, 43
 
Hallo, ich bins nochmal.
Ich müsste noch wissen, ob es eine Möglichkeit gibt, diese Zahl, die dann in eax steht in Dezimalform auszugeben. Kann er das automatisch oder muss man die Zahl erst umrechnen?
Mir wäre nicht bekannt, das ein Prozessor solche Befehle anbietet. Du müßtest das manuell erst in eine Ziffernfolge umrechnen. Oder du benutzt einfach die printf Funktion der C Bibliothek.

Gruß
 

Neue Beiträge

Zurück