Zum Hauptinhalt springen

Wie in Assembler eine Zahl über die Tastatur eingeben: eine Anleitung für Anfänger

Die Tastatureingabe von Zahlen ist eine der häufigsten Programmieroperationen. In diesem Artikel sehen wir uns an, wie Sie eine Zahl in Assembler über die Tastatur eingeben können. Zu lernen, dies zu tun, ist eines der ersten Dinge, die ein angehender Programmierer lernen sollte, daher empfehlen wir Ihnen, sich mit diesem kleinen Handbuch vertraut zu machen.

Im Assembler erfolgt die Eingabe von Zahlen über die Tastatur durch einen Interrupt der 21. Methode, der I / O-Funktionen auf einem DOS-System ausführt. Der erste Schritt vor dem Aufruf dieser Unterbrechung muss jedoch die gewünschten Parameter eingestellt und das AH-Register mit dem Funktionscode geladen sein, der der gewünschten Eingabemethode entspricht.

Um eine Dezimalzahl über die Tastatur einzugeben, verwenden wir die folgende Befehlssequenz: zuerst müssen Sie das AH-Register mit dem Funktionscode 1 laden, danach wird der Interruptaufruf der 21. Methode ausgeführt, und danach wird die Zahl in AL gespeichert. Sie können die gleiche Befehlssequenz verwenden, um den eingegebenen Wert anzuzeigen, indem Sie nur den Funktionscode und die Register AL und AH an einigen Stellen ändern.

Wie kann ich im Assembler eine Zahl über die Tastatur eingeben?

Um eine Zahl über die Tastatur einzugeben, verwendet das Assembler-Programm einen Systemaufruf oder eine Unterbrechung, z. B. INT 21h in DOS oder INT 10h im BIOS. Diese Aufrufe ermöglichen es dem Programm, mit dem Betriebssystem zu kommunizieren und Daten vom Benutzer zu empfangen.

Sie können die folgende Vorgehensweise verwenden, um eine Zahl über die Tastatur einzugeben:

  1. Den Interruptwert 21h (oder 10h im BIOS) in das AX-Register laden
  2. Laden Sie den Wert 1 (oder 0 im BIOS) in das AH-Register, um ein Zeichen über die Tastatur zu lesen
  3. Einen Interrupt mit der INT-Anweisung auslösen, indem der Wert 21h (oder 10h im BIOS) im AX-Register übergeben wird
  4. Der vom Benutzer über die Tastatur eingegebene Wert wird im Register AL (oder AH im BIOS) gespeichert.

Beispielcode in Assembler:

MOV AH, 01h ; Загружаем функцию чтения символа с клавиатурыINT 21h ; Вызываем прерывание 21hMOV DL, AL ; Сохраняем введенное значение в регистре DL

Daher wird nach der Ausführung dieses Codes die über die Tastatur eingegebene Zahl im Register DL gespeichert.

Beachten Sie, dass die eingegebene Zahl durch ein ASCII-Zeichen dargestellt wird. Wenn Sie dieses Zeichen in einen numerischen Wert konvertieren müssen, ist möglicherweise eine zusätzliche Datenverarbeitung erforderlich.

Anmerkung: Daher sollten Sie sich in der systemspezifischen Dokumentation nach der genauen Abfolge der Schritte für die Eingabe einer Zahl über die Tastatur in Assembler erkundigen.

Anleitung für Anfänger

Schritt 1:

Als erstes müssen Sie die Initialisierungsdatei Ihres Assembler-Programms öffnen. In dieser Datei können Sie Variablen festlegen und Register markieren. Sie müssen die entsprechenden Register festlegen, damit Ihr Programm die Tastatureingaben lesen kann.

Schritt 2:

Dann müssen Sie einen Zeiger vorbereiten, der auf die Stelle zeigt, an der Sie die eingegebene Zahl speichern möchten. Dies geschieht normalerweise, indem das Register auf den Wert der Speicheradresse gesetzt wird, in der die Zahl gespeichert werden soll.

Schritt 3:

Nachdem Sie nun einen Zeiger vorbereitet haben, können Sie die Tastatureingabeanweisung verwenden, um die Zahl zu lesen. Dies geschieht normalerweise mit einer Anweisung read oder scanf.

Schritt 4:

Nachdem die Zahl gelesen wurde, können Sie sie analysieren oder nach Belieben in Ihrem Programm verwenden.

Es kann schwierig erscheinen, eine Zahl in Assembler über die Tastatur einzugeben, besonders wenn Sie gerade erst mit der Programmierung beginnen. Wenn Sie diese Anleitung und die angegebenen Schritte befolgen, können Sie diese Aufgabe jedoch erfolgreich ausführen.

Vorbereiten der Eingabe einer Zahl

Bevor Sie mit der Eingabe einer Zahl über die Tastatur in einem Assembler-Programm beginnen, müssen Sie einige vorbereitende Schritte ausführen.

Zuerst müssen Sie eine Begrüßung oder eine Anweisung für den Benutzer erstellen, damit er weiß, welche Daten er eingeben soll. Sie können beispielsweise eine Meldung wie "Nummer eingeben: " anzeigen.

Dann müssen Sie die Register und den Speicher vorbereiten, um die Zahl einzugeben. Im Assembler können Sie dazu die Befehle MOV und LEA verwenden. Mit dem Befehl MOV können Sie den Wert in ein Register schreiben und mit dem Befehl LEA die Speicheradresse in ein Register laden. Beispielsweise können Sie die Adresse der Variablen, in die die eingegebene Zahl geschrieben werden soll, mithilfe des Befehls LEA AX in das AX-Register laden, [var].

Sie müssen auch den Tastatureingabemodus einstellen. Dazu können Sie den Befehl INT 21h mit dem Parameter AH=01h verwenden. Dieser Befehl wartet auf die Eingabe eines Zeichens über die Tastatur und gibt seinen Code zurück.

Nachdem Sie alle diese Vorbereitungsschritte abgeschlossen haben, können Sie mit der Eingabe einer Zahl über die Tastatur beginnen und sie im Speicher oder in der Groß-/Kleinschreibung speichern.

Eingabe einer Zahl über die Tastatur

Um eine Zahl über die Tastatur in Assembler einzugeben, können Sie eine spezielle Funktion verwenden, mit der Sie ein Zeichen über die Tastatur lesen und in einen numerischen Wert konvertieren können.

Der Prozess der Eingabe einer Zahl über die Tastatur besteht aus mehreren Schritten:

Schritt 1:

Bereiten Sie die Register für die Arbeit mit der Eingabefunktion vor. Normalerweise werden dafür die Register EAX, EBX und ECX verwendet.

Schritt 2:

Rufen Sie die Eingabefunktion auf, indem Sie die Adresse der Variablen übergeben, in der die eingegebene Zahl gespeichert werden soll.

Schritt 3:

Bearbeiten Sie die eingegebene Zahl entsprechend den Voraussetzungen und Anforderungen Ihres Programms.

Schritt 4:

Führen Sie das Programm unter Berücksichtigung der eingegebenen Nummer weiter aus.

Die Eingabe einer Zahl über die Tastatur in Assembler kann etwas schwieriger sein als in anderen Programmiersprachen. Aber mit Erfahrung können Sie diesen Prozess beherrschen und Ihre Fähigkeiten effektiv in der Entwicklung von Assembler-Programmen einsetzen.