Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe da ein kleines Problem mit Assembler. Ich habe in einer Variable eine Ganzzahl stehen. Diese Ganzzahl möchte ich gerne Ausgeben. Ich weiß aber nicht wie. Oder anders gefragt.

Übersetzt folgende von C in Assembler:

printf("%d", 512);

Geschrieben

Ich weiß ja nicht mit welchem Compiler Du arbeitest, aber mit dem Studio und dem Inline-Assembler geht das Einbinden von C-Funktionen recht einfach:

#include <stdio.h>


char format[] = "%s %s\n";

char hello[] = "Hello";

char world[] = "world";

void main( void )

{

   __asm

   {

      mov  eax, offset world

      push eax

      mov  eax, offset hello

      push eax

      mov  eax, offset format

      push eax

      call printf

      pop  ebx

      pop  ebx

      pop  ebx

   }

}

Das selber in Assembler zu tun ist nur Quälerei - ich habe mal sowas mit Tabellen gemacht in denen die Dezimalzahlen von 2 hoch x eingetragen waren und diese dann (als ASCII) aufeinander addiert wurden - klappte einwandfrei und ging (relativ) zügig. Lediglich wenn man mit bcds arbeitet gabs eine recht simple Methode (müßte ich aber auch nochmal genauer nachdenken wie das genau ging) oder man holt sich die einzelnen Dezimalstellen durch Modulo-Divisionen einfach eine nach der anderen raus (ASCII-'0' dazuaddieren) und gibt sie aus (ist das Schnellste und nach dem Beispiel oben das Einfachste). Bleibt jetzt nur die Frage ob es Dir rein um das Umrechnen oder eher um die Ausgabe ging? Diese klappt nämlich über Interrupts nur auf DOS-Ebene oder direkt auf die Grafikkarte.

Geschrieben

Ging mir eigentlich um beides. Werde aber sehr wahrscheinlich die Methode mit Modulo und Addition von ASCII 0 nehmen. Denken das werden ich fertig bekommen. Ansonsten frage ich einfach noch einmal. Besten Dank.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Weiterlesen  

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...