Intel x86 Assembly Language & Microarchitecture
Manipulacja danymi
Szukaj…
Składnia
- .386 : Mówi MASM, aby skompilował się dla wersji z chipem co najmniej x86 386.
- .model : Ustawia model pamięci do użycia, patrz .MODEL .
- .code : segment kodu, używany w procesach takich jak proces główny.
- proc : Deklaruje proces.
- ret : używany do pomyślnego wychodzenia z funkcji, patrz Praca z wartościami zwracanymi .
- endp : Kończy deklarację procesu.
- public : Udostępnia proces wszystkim segmentom programu.
- end : kończy program lub jeśli jest używany z procesem, takim jak „ end main ”, czyni ten proces główną metodą.
- call : wywołuje proces i wypycha swój kod operacji na stos, patrz Kontrola przepływu .
- ecx : rejestr licznika, patrz rejestry .
- ecx : rejestr licznika.
- mul : Mnoży wartość przez eax
Uwagi
mov służy do przesyłania danych między rejestrami .
Używanie MOV do manipulowania wartościami
Opis:
mov kopiuje wartości bitów z argumentu źródłowego na docelowy.
Wspólnym źródłem / miejscem docelowym są rejestry , zwykle najszybszy sposób manipulowania wartościami za pomocą procesora [in].
Inną ważną grupą wartości source_of / destination_for jest pamięć komputera.
Wreszcie, niektóre bezpośrednie wartości mogą być częścią samego kodowania instrukcji mov , oszczędzając czas dostępu do oddzielnej pamięci, czytając wartość wraz z instrukcją.
Na procesorze x86 w trybie 32- i 64-bitowym istnieją bogate możliwości ich łączenia, szczególnie różne tryby adresowania pamięci. Zasadniczo kopiowanie z pamięci do pamięci jest poza limitem (z wyjątkiem wyspecjalizowanych instrukcji, takich jak MOVSB ), i taka manipulacja wymaga najpierw pośredniego przechowywania wartości w rejestrze [s].
Krok 1: Skonfiguruj projekt do korzystania z MASM , zobacz Wykonywanie zestawu x86 w Visual Studio 2015
Krok 2: Wpisz to:
.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
Krok 3: Kompiluj i debuguj.
Program powinien zwrócić wartość 16 .