Online: 0x026 (38)
haker.iиfø  — Etyczny hacking_
Spreading knowledge like a virus.

 haker.info Baza wiedzy

Asembler x86/x64 » Instrukcje transferu danych

MOV

Składnia rozkazu:
MOV A, B

Instrukcja kopiuje wartość operandu B do operandu A.

Pseudokod:
A = B

Wpływ instrukcji na rejestr znaczników (flag):

  • brak

Przykładowy kod MASM64 (ml64.exe):

extrn ExitProcess : proc .data ;zmienna o nazwie var1, rozmiarze poczwórnego słowa (qword) i wartości 07h var1 dq 07h ;zmienna o nazwie var2, rozmiarze poczwórnego słowa (qword) i wartości 03h var2 dq 03h ;ciąg bajtów (napis) zakończony zerem var3 db "Hello!", 0 ;ciąg (tablica) czterech podwójnych słów (dword) o nadanych wartościach var4 dd 01h, 02h, 00h, 04h .code Main proc ;do rejestru RAX wpisz wartość natychmiastową 02h mov rax, 02h ;do rejestru RCX wpisz wartość z rejestru RAX mov rcx, rax ;do zmiennej o nazwie var1 wpisz wartość z rejestru RCX mov var1, rcx ;BŁĄD: ;mov var2, var1 ;do rejestru RAX wpisz wartość zmiennej o nazwie var1 mov rax, var1 ;do zmiennej o nazwie var2 wpisz wartość z rejestru RAX mov var2, rax ;odłóż wartość z rejestru RAX na stos push rax ;zdejmij wartość ze stosu i umieść w zmiennej o nazwie var2 pop var2 ;do rejestru RBX wpisz adres napisu var3 mov rbx, offset var3 ;podmień drugi znak (bajt) w napisie na literę "a" (var3 = "Hallo!") mov byte ptr [rbx + 1], "a" ;do rejestru RBX wpisz adres tablicy var4 mov rbx, offset var4 ;podmień wartość trzeciego elementu tablicy na 03h (var4 = 01h, 02h, 03h, 04h) mov dword ptr [rbx + 2], 03h ;zakończ program sub rsp, 8h xor rcx, rcx call ExitProcess Main endp end

Kompilacja przykładowego kodu źródłowego:

ml64.exe prog1.asm /link /entry:Main /subsystem:windows /defaultlib:"kernel32.Lib" /LARGEADDRESSAWARE:NO

Dawid Farbaniec

Wykaz literatury (bibliografia)

  • Advanced Micro Devices Inc., 2017 – AMD64 Architecture Programmer's Manual
  • Intel Corporation, 2019 – Intel 64 and IA-32 Architectures Software Developer's Manual
  • Microsoft Corporation, 2019 – https://docs.microsoft.com/pl-pl/cpp/assembler/masm/masm-for-x64-ml64-exe (dostęp: 28-07-2020)
Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.