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.