online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon steenvoortl vom 17.07.2020, 21:26 Options

Wie liest man in Assembler eine Zahl ein?

Ich habe vor, zur Übung einen Assembler-Taschenrechner zu schreiben.
Jedoch weiß ich nicht, wie ich mehr als einen Tastendruck und vor allem das dazugehörige Zeichen in Assembler einlese.

Könnt ihr mir bitte helfen?


Antwort schreiben

Antwort 1 von Jaja vom 17.07.2020, 21:40 Options

Zitat:
wie ich mehr als einen Tastendruck


durch eine schleife mit abbruchbedingung (sonderzeichen oder anzahl)

Zitat:
vor allem das dazugehörige Zeichen in Assembler einlese.


kommt nun darauf an, auf welcher "maschine" du hier experimentieren willst..

für deine übung würde ich kein "echtes" programm für den x86 + dein betriebssystem schreiben - das ist zu komplex. vorallem durch das betriebsystem, dessen besonderheiten und abi du beachten musst.

es gibt eine ganze reihe von emulatoren - darunter solche, die extra für asm lernen gedacht sind, die da besser geeignet sind.

also: welche architektur hättest du denn gern? ;)

Antwort 2 von Jaja vom 17.07.2020, 21:44 Options

aso:

gernerell müste es so ablaufen (ohne betriebsystem abi), das du im tastaturpuffer nachguckst, ob ein (neuer) scancode anliegt, diesen holst - ihn nach deiner codeliste in ein zeichencode -> gewünschte zahl umwandelst und dann damit machst was du vorhast..

wenn du nicht ständig im tastaturpuffer nachgucken willst, müsstest du einen interruptvektor einrichten. wird dieser dann augelöst (durch tastendruck), wird ein von dir geschriebener handler den scancode abholen und in ein register schieben.. das is besser.

Ähnliche Themen

NASM (Netwide Assembler)
muhll  04.07.2008 - 101 Hits - 8 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026