Zoeken…


Syntaxis

  • .386 : Vertelt MASM om te compileren voor een minimale x86- chipversie van 386.
  • .model : Stelt het te gebruiken geheugenmodel in, zie .MODEL .
  • .code : codesegment, gebruikt voor processen zoals het hoofdproces.
  • proc : Declareert proces.
  • ret : gebruikt voor het succesvol afsluiten van functies, zie Werken met retourwaarden .
  • endp : beëindigt procesverklaring.
  • openbaar : maakt het proces beschikbaar voor alle segmenten van het programma.
  • einde : beëindigt programma, of indien gebruikt met een proces, zoals in " einde hoofd ", maakt het proces de belangrijkste methode.
  • call : roept het proces op en duwt de opcode op de stapel, zie Control Flow .
  • ecx : Tellerregister, zie registers .
  • ecx : Tellerregister.
  • mul : vermenigvuldigt waarde met eax

Opmerkingen

mov wordt gebruikt om gegevens tussen de registers over te dragen .

MOV gebruiken om waarden te manipuleren

Beschrijving:

mov kopieert waarden van bits van bronargument naar doelargument.

Gemeenschappelijke bron / bestemming zijn registers , meestal de snelste manier om waarden te manipuleren met [in] CPU.

Een andere belangrijke groep source_of / destination_for-waarden is computergeheugen.

Tenslotte kunnen sommige onmiddellijke waarden deel uitmaken van de mov die zichzelf codeert, wat tijd bespaart op afzonderlijke geheugentoegang door de waarde samen met instructie te lezen.

Op x86 CPU in 32- en 64-bits modus zijn er uitgebreide mogelijkheden om deze te combineren, vooral verschillende geheugenadresseringsmodi. Over het algemeen is het kopiëren van geheugen naar geheugen beperkt (behalve gespecialiseerde instructies zoals MOVSB ), en dergelijke manipulatie vereist eerst een tussentijdse opslag van waarden in register [s].

Stap 1: Stel uw project in om MASM te gebruiken, zie x86-assemblage uitvoeren in Visual Studio 2015
Stap 2: Typ dit in:

.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

Stap 3: Compileren en foutopsporing.

Het programma moet waarde 16 retourneren.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow