Die Tastatur ist ein wichtiger Bestandteil jedes Computers. Bei der Assembler-Programmierung ist es oft notwendig, Zahlen über die Tastatur einzugeben. Die Bedienung der Tastatur im Assembler ist eine ziemlich komplexe Aufgabe, da die Interaktion mit dem Eisen des Computers erforderlich ist. Wenn Sie jedoch bestimmte Schritte befolgen, können Sie lernen, wie Sie Zahlen über die Tastatur in Assembler eingeben.
Die Eingabe von Zahlen über die Tastatur in Assembler erfolgt in mehreren Schritten. Sie müssen zuerst die entsprechende Groß-/Kleinschreibung für die Interaktion mit der Tastatur festlegen. Sie sollten dann warten, bis der Benutzer eine Taste drückt. Danach können Sie den Scancode der gedrückten Taste abrufen. Mit Hilfe eines Scancodes können Sie bestimmen, welche Ziffer Sie eingegeben haben. Schließlich kann die Zahl gespeichert und im Programm verwendet werden.
Beachten Sie, dass die Eingabe von Zahlen über die Tastatur in Assembler vom Betriebssystem und von der Hardware des Computers abhängt. Daher wird empfohlen, die Dokumentation der verwendeten Hardware und des Betriebssystems zu überprüfen, um die Kompatibilität und Zuverlässigkeit des Programms zu maximieren.
In diesem Artikel betrachten wir eine ausführliche Anleitung zum Eingeben von Zahlen über die Tastatur in Assembler. Wir werden uns die grundlegenden Tastaturbefehle und -verfahren ansehen und Codebeispiele in verschiedenen Assemblersprachen vorstellen. Wir hoffen, dass diese Informationen für diejenigen nützlich sein werden, die in Assembler programmieren und Zahlen über die Tastatur eingeben müssen.
Grundlegende Register und Anweisungen in Assemblersprache
Allgemeine Hauptregister umfassen:
- Ein AX-Register, das in kleinere Teile unterteilt werden kann: AH und AL;
- Ein BX-Register, das auch in Teile unterteilt werden kann: BH und BL;
- Das CX-Register sowie Teile davon: CH und CL;
- Das DX-Register, bestehend aus DH und DL;
Die Flaggenregister enthalten Informationen über die Ergebnisse von Operationen und enthalten die folgenden Flags:
- Übertragungs-Flag (CF);
- Null-Flag (ZF);
- Überlauf-Flag (OF);
- Richtungsflagge (DF);
- Interrupt-Flag (IF);
- CPU-Beendigungsflag (TF).
Die grundlegenden Anweisungen für die Assemblersprache umfassen:
- MOV - Anweisung zum Verschieben von Daten;
- ADD - Additionsanweisung;
- SUB - Subtraktionsanweisung;
- MUL - Multiplikationsanweisung;
- DIV - Divisionsanweisung;
- CMP - Vergleichsanweisung;
- JMP - Anweisung für bedingungslosen Übergang;
- JE - Anweisung für bedingten Übergang bei Gleichheit;
- JNE ist eine Anweisung zum bedingten Übergang bei Ungleichheit.
Die Kenntnis der grundlegenden Register und Assemblersprache ist wichtig, wenn Sie mit der Tastatur arbeiten, da Sie die Eingaben verarbeiten und verschiedene Operationen mit ihnen durchführen können.
Assembler-Programmstruktur: Abschnitte und Symbole
Partitionen sind einzelne Teile eines Programms, die bestimmte Arten von Anweisungen oder Daten enthalten. Der Assembler erkennt mehrere Standardabschnitte:
- .data - In diesem Abschnitt werden normalerweise Datendeklarationen wie Variablen und Konstanten platziert.
- .text - Dieser Abschnitt enthält den Programmcode, der ausgeführt werden soll.
- .bss - In diesem Abschnitt können Sie nicht initialisierte Variablen und Arrays deklarieren.
- .rodata - Hier werden schreibgeschützte Daten platziert, die während der Programmausführung nicht geändert werden können.
Symbole sind Bezeichner, die verwendet werden, um Adressen oder Werte zu bezeichnen. Symbole können global oder lokal sein und können verwendet werden, um auf bestimmte Teile eines Programms oder Daten zuzugreifen.
- main ist ein Symbol, das den Einstiegspunkt für das Programm anzeigt.
- var1 ist ein Zeichen, das eine Variable bezeichnet.
- start ist ein Symbol, das die Startadresse des Codeabschnitts angibt.
Abschnitte und Symbole werden mit verschiedenen Assembler-Direktiven angegeben. Direktiven weisen den Compiler an, wie das Programm organisiert werden soll und welche Anweisungen und Daten verwendet werden sollen.
Das Verständnis der Struktur eines Programms in Assembler ist wichtig, um Code richtig zu schreiben und zu debuggen. Die klare Trennung von Abschnitten und die Verwendung von Symbolen helfen dem Programmierer, die Logik des Programms zu organisieren und zu verstehen.
Eingeben von Daten über die Tastatur: Verwenden von Systemanrufen
Der primäre Systemanruf zur Eingabe von Daten über die Tastatur ist der Anruf mit der Nummer 16 (bei einigen Betriebssystemen kann diese Nummer abweichen). Bei diesem Aufruf werden die Daten direkt aus der Standardeingabe gelesen.
Verwenden Sie den folgenden Ansatz, um eine Zahl über die Tastatur einzugeben:
- Mit dem Systemanruf 16 ein Zeichen von der Tastatur auslesen.
- Überprüfen Sie, ob das gelesene Zeichen eine Ziffer ist.
- Konvertiert ein Zahlensymbol in eine numerische Darstellung.
Sie können den folgenden Code verwenden, um ein Zeichen von der Tastatur zu lesen:
mov ah, 00h ; установить функцию чтения символа с клавиатуры в регистр ahint 16h ; вызов системного вызова 16
Nachdem dieser Code ausgeführt wurde, befindet sich das gelesene Zeichen im al-Register.
Sie können den folgenden Code verwenden, um zu überprüfen, ob das gelesene Zeichen eine Ziffer ist:
cmp al, '0' ; сравнить считанный символ с символом '0'jb not_digit ; если считанный символ меньше '0', то он не является цифройcmp al, '9' ; сравнить считанный символ с символом '9'ja not_digit ; если считанный символ больше '9', то он не является цифрой; Если код выполнения достиг этого места, то считанный символ является цифрой
Um ein Zahlenzeichen in eine numerische Darstellung umzuwandeln, können Sie den Zeichencode '0' vom Code des gelesenen Zeichens subtrahieren:
sub al, '0' ; вычесть код символа '0' из считанного символа.
Das al-Register enthält nun eine numerische Darstellung der gelesenen Ziffer.
Auf diese Weise können Sie mithilfe von Systemaufrufen einfach eine Prozedur zur Eingabe einer Zahl über die Tastatur in Assembler erstellen.