Widać czarno na białym, jak w assemblerze zapisana jest pojedyncza instrukcja w C, świetnie widać jak funkcja korzysta ze stosu oraz jak w assemblerze wykonywane są obliczenia i jak jest zwracana wartość. Oczywiście należy się zaopatrzyć w materiał(y) do nauki assemblera, aby wiedzieć jakie zadanie pełni każda pojedyncza instrukcja, oraz aby potem samemu móc coś pisać w tym języku. Jeśli jednak chcemy sami napisać coś w assemblerze, możemy posłużyć się wstawkami w tym języku. Przykładowa wstawka znajduje się w 9 linii kodu, zastępuje ona instrukcję return. Ponieważ jak wiadomo wartość zwrotna funkcji, w tym funkcji main w procesorach x86 zapisywana jest do rejestru EAX. Ta wstawka umieszcza wartość 3 w tym rejestrze też przed wyjściem z maina i zakończeniem programu. Przechodząc do kolejnej instrukcji w naszym programie, możemy w oknie "Disassembly" zobaczyć naszą wstawkę. Zaznaczona ona jest żółtą strzałką i w oknie z kodem programu i w oknie "Disassembly".To oczywiście banalny przykład, jak jest się bardziej zaawansowanym, można próbować pisać całe funkcje w assemblerze a ostatecznie nawet i programy(choć to rzadko jest praktykowane). Mam nadzieję, że po przerobieniu tego poradnika, assembler już nie będzie dla Was taki straszny
[Poradnik] Łatwy i przyjemny sposób na naukę assemblera
|
25.03.2017, 16:20
W tym poradniku opiszę łatwy i prosty sposób na naukę tego języka. Assembler jest postrzegany za trudny język, ponieważ trzeba świetnie wiedzieć jak działa procesor, w dodatku dla wielu osób nie jest przejrzysty tak jak języki wysokiego poziomu. Wielu osobom też trudno by było w nim napisać cały program robiący coś konkretnego, ale kto powiedział, że trzeba się go uczyć pisząc całe programy? Znając C/C++ można w prosty sposób nauczyć się assemblera pisząc w nim tylko pojedyncze elementy programu oraz obserwując jak działa zdekompilowany program napisany w kompilowanym języku wysokiego poziomu. Tylko jak pisać w assemblerze pojedyncze elementy programu w C/C++ i obserwować jak działa zdekompilowany program? Bardzo łatwo, używając tzw. wstawek w assemblerze oraz debugera. Jeśli chcemy zobaczyć jak wygląda pojedyncza funkcja programu w C/C++ w assemblerze ustawiamy breakpointa przed nagłówkiem funkcji, odpalamy debuger oraz wyświetlamy okno, które w przypadku środowiska CodeBlocks nazywa się "Disassembly".
Widać czarno na białym, jak w assemblerze zapisana jest pojedyncza instrukcja w C, świetnie widać jak funkcja korzysta ze stosu oraz jak w assemblerze wykonywane są obliczenia i jak jest zwracana wartość. Oczywiście należy się zaopatrzyć w materiał(y) do nauki assemblera, aby wiedzieć jakie zadanie pełni każda pojedyncza instrukcja, oraz aby potem samemu móc coś pisać w tym języku. Jeśli jednak chcemy sami napisać coś w assemblerze, możemy posłużyć się wstawkami w tym języku. Przykładowa wstawka znajduje się w 9 linii kodu, zastępuje ona instrukcję return. Ponieważ jak wiadomo wartość zwrotna funkcji, w tym funkcji main w procesorach x86 zapisywana jest do rejestru EAX. Ta wstawka umieszcza wartość 3 w tym rejestrze też przed wyjściem z maina i zakończeniem programu. Przechodząc do kolejnej instrukcji w naszym programie, możemy w oknie "Disassembly" zobaczyć naszą wstawkę. Zaznaczona ona jest żółtą strzałką i w oknie z kodem programu i w oknie "Disassembly".To oczywiście banalny przykład, jak jest się bardziej zaawansowanym, można próbować pisać całe funkcje w assemblerze a ostatecznie nawet i programy(choć to rzadko jest praktykowane). Mam nadzieję, że po przerobieniu tego poradnika, assembler już nie będzie dla Was taki straszny Odjechani.com.pl, to bardzo przyjazne forum wielotematyczne. Zapraszamy do darmowej rejestracji! Kliknij "rejestracja" i... |
Użytkownicy przeglądający ten wątek: 1 gości