Suche…


Syntax

  • .386 : Weist MASM an, für mindestens 386 x86-Chips zu kompilieren.
  • .model : Legt das zu verwendende Speichermodell fest, siehe .MODEL .
  • .code : Codesegment, das für Prozesse wie den Hauptprozess verwendet wird.
  • proc : Deklariert den Prozess.
  • ret : wird zum erfolgreichen Beenden von Funktionen verwendet, siehe Arbeiten mit Rückgabewerten .
  • endp : Beendet die Prozessdeklaration.
  • public : Macht den Prozess für alle Segmente des Programms verfügbar.
  • end : Endet das Programm oder, wenn es mit einem Prozess wie " end main " verwendet wird, wird der Prozess zur Hauptmethode.
  • rufen: Anrufe Prozess und schiebt seinen Opcode auf den Stapel, siehe Ablaufsteuerung .
  • ecx : Zählerregister , siehe Register .
  • ecx : Zählerregister .
  • mul : Multiplies-Wert mit eax

Bemerkungen

Mit mov werden Daten zwischen den Registern übertragen .

Verwenden von MOV zum Manipulieren von Werten

Beschreibung:

mov kopiert Werte von Bits vom Quellargument zum Zielargument.

Übliche Quelle / Ziel sind Register , normalerweise der schnellste Weg, um Werte mit [in] CPU zu manipulieren.

Eine weitere wichtige Gruppe von source_of / destination_for-Werten ist der Computerspeicher.

Schließlich können einige unmittelbare Werte Teil der mov Anweisung sein, die selbst kodiert, wodurch Zeit für den separaten Speicherzugriff gespart wird, indem der Wert zusammen mit der Anweisung gelesen wird.

Bei der x86-CPU im 32- und 64-Bit-Modus gibt es viele Möglichkeiten, diese zu kombinieren, insbesondere verschiedene Speicheradressierungsmodi. Im Allgemeinen ist das Kopieren von Speicher in Speicher außerhalb der Grenzen (mit Ausnahme von spezialisierten Anweisungen wie MOVSB ), und für diese Manipulation müssen die Werte zuerst in Register [s] gespeichert werden.

Schritt 1: Richten Sie Ihr Projekt für die Verwendung von MASM ein . Weitere Informationen finden Sie unter x86-Assembly in Visual Studio 2015 ausführen
Schritt 2: Geben Sie Folgendes ein:

.386
.model small
.code

public main
main proc
    mov ecx, 16       ; Move immediate value 16 into ecx
    mov eax, ecx      ; Copy value of ecx into eax
    ret               ; return back to caller
        ; function return value is in eax (16)
main endp
end main

Schritt 3: Kompilieren und debuggen.

Das Programm sollte den Wert 16 .



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow