# linux assembler anfängerfrage



## 101011 (1. Juli 2007)

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


----------



## deepthroat (1. Juli 2007)

Hi.





101011 hat gesagt.:


> 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:
> ...


Binär.


101011 hat gesagt.:


> 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ß


----------



## 101011 (1. Juli 2007)

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


----------



## deepthroat (1. Juli 2007)

101011 hat gesagt.:


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


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ß


----------



## 101011 (3. Juli 2007)

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


----------



## deepthroat (3. Juli 2007)

101011 hat gesagt.:


> 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ß


----------

