|
Datenbewegung
Ich verzeichne etwas Assemblersprache Anweisungen für Datenbetriebe hier für dein Wissen und Bequemlichkeit, wenn wir die Programmierung mit Hilfe der Unterbrechungen und anderer BIOS-Betriebe tun werden, die wir seine Grundlagen benötigen.
Ausführliche Einleitung und vollständige Studie der Assemblersprache ist über der Begrenzung auf dieses Buch hinaus. Obwohl das Wissen von Grundlagen der Versammlung notwendig ist, um in die weiteren wichtigen programmierenkapitel fortzufahren, dennoch wenn du ihm schwierig, alle Anweisungen zu verstehen glaubst, brauchst du nicht dich zu sorgen, aber es wird empfohlen, daß du die Grundidee von Anweisungen gewinnen solltest.
In jedem möglichem Programm ist es notwendig, die Daten im Gedächtnis zu verschieben und in der CPU registriert und es gibt einige Weisen, dies zu tun. sie kann Daten im Gedächtnis zu irgendeinem Register, vom Register kopieren - - registriert, von einem Register zu einem Stapel, von einem Stapel zu einem Register, um Daten externen Vorrichtungen sowie umgekehrt überzumitteln.
Diese Bewegung von Daten ist abhängig von Richtlinien und Beschränkungen. Die folgenden ist einige von ihnen:
- Es ist nicht möglich, Daten von einer Gedächtnisposition auf andere direkt zu verschieben. Es ist zu zuerst verschiebt die Daten der Quellposition auf ein Register und dann vom Register auf die Bestimmungsortstelle notwendig.
- Es ist nicht möglich, eine Konstante direkt auf ein Segmentregister zu verschieben; es muß auf ein Register in der CPU zuerst verschoben werden.
- Es ist möglich, Datenblöcke mittels der MOVS Anweisungen zu verschieben, das eine Kette von Bytes oder von Wörtern kopiert. MOCSB, das n Bytes von einer Position eine andere und MOVSW Kopien n zu den Wörtern von einer Position zu anderen kopiert. Die letzten zwei Anweisungen nehmen die Werte von den definierten Adressen durch DS: SI als Gruppe Daten zum zu bewegen und ES: DI als die neue Lokalisation der Daten.
Um zu bewegen sind Daten dort auch die Strukturen, die Batterien genannt werden, in denen die Daten mit der Stoß Anweisung eingeführt werden und mit der Knall Anweisung extrahiert werden. In einem Stapel, den die ersten eingeführt zu werden Daten das letzte wir nehmen können, dieses sind, ist, wenn in unserem Programm wir diese Anweisungen verwenden:
PUSH AX
PUSH BX
PUSH CX
Die korrekten Werte zu jedem Register im Augenblick des Nehmens ihnen vom Stapel zurückzubringen er ist notwendig ihn im folgenden Auftrag zu tun:
POP CX
POP BX
POP AX
Für die Kommunikation mit externen Vorrichtungen wird der Herausbefehl, Informationen zu einem Tor zu schicken und im Befehl, die Informationen zu lesen verwendet, die von einem Tor erhalten werden.
Die Syntax des HERAUS-Befehls ist:
OUT DX,AX
Wo DX enthält, enthält der Wert des Tores, das für die Kommunikation und die AXT benutzt wird, die Informationen, die gesendet wird.
Die Syntax von im Befehl ist:
IN AX,DX
Wo AXT das Register ist, in dem die ankommenden Informationen geführt werden und DX enthält die Adresse des Tores, durch das die Informationen ankommen.
|
|