Assembly problem z zapisanem

0

Dzień Dobry. Czy mógłby mi ktoś wytłumaczyć dokładnie jakie są "formy assembly". Widziałem dużo przeróżnych zapisów w poradnikach na stronach. Jakieś z procentami i takie zwykłe. Ponadto zauważyłem, że większość programów jest napisana korzystając z rejestrów EXX, a nie RXX czym to jest spowodowane? Lepiej korzystać z assembly x86 czy x64? Poniżej wkleję mój kod w assembly. W jakiej on jest notacji? Przy okazji jakie poradniki polecilibyście do assembly?:

section .data
	msg db		"Hello World!"

section .text
	global_start
_start:
	mov 	rax, 1
	mov 	rdi, 1
	mov 	rsi, msg
	mov	rdx, 13
	syscall
	mov 	rax, 60
	mov 	rdi, 0
	syscal
1
  1. Jezeli chodzi x86-64 to jest skladnia Intela (NASM [?], destination source)
    I AT&T (GNU Assembler, source destination) + jeszcze kilka roznic chyba (google, slowa kluczowe znasz)

  2. Ponadto najlepiej Ci znana architektura intela nie jest jedyna, sa tez dla przykladu procesory ARM

  3. Jesli nie potrzebujesz az 64 bitow a wystarczaja Ci 32 do wykonania danej instrukcji to zdaje sie instrukcje 32bitowe sa o 1 bajt krotsze. Rejestry EXX to dolna polowa rejestrow RXX

0

Rozumiem. Dziękuje za informację. Chciałem się jeszcze zapytać? Może znasz jakieś dobre tutoriale do inżynierii wstecznej, albo książki?

2

Ja sie na tym nie znam ale @Gynvael Coldwind ma na swojej stronie i youtubie serie o reverse engineeringu

1

@lu7x00
Przejrzyj https://gynvael.coldwind.pl/?id=664 - tam jest trochę linków i podpowiedzi jak się uczyć.

0

Dzięki bardzo za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1