Asembler x86/Zaawansowana architektura: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Nie podano opisu zmian |
|||
Linia 1:
==Wstęp==
Język Asembler można łączyć z językami wysokiego poziomu na dwa różne sposoby. Możemy użyć go bezpośrednio w kodzie źródłowym naszego programu np w C czy C++. Wówczas nie dość, że musimy znać nie tylko sam Asembler, ale także sposoby w jakie kompilator HLLa będzie daną wstawkę tłumaczył do postaci binarnej. Wiele kompilatorów ma własne sposoby i schematy na wprowadzanie kodu języka niskiego poziomu, przez co mamy małe utrudnienie w pisaniu programu, ale to się bardzo sprawdza gdy musimy napisać niedużo kodu w Asemblerze i w dodatku chcemy mieć "wszystko na miejscu" w jednym pliku.
Drugi sposób to pisanie naszych rozkazów w osobnym pliku jako, zupełnie autonomiczny moduł naszego programu, który będzie asemblowany osobno i następnie już w postaci binarnej łączony z skompilowanymi modułami języków wysokiego poziomu. Dzięki temu możemy pisać przy pomocy takiego asemblera jakiego chcemy, nie martwiąc się o to jak kompilator sobie poradzi z wstawką gdyż jej po prostu nie będzie. Ma to również tę zaletę, że jeśli zmodyfikujemy tylko kod w Asemblerze, nie musimy kompilować całego programu na nowo. Po prostu nasze zmiany linkujemy z starą wersją modułów programu i proces przebudowy całej aplikacji jest już krótszy.
== Sposoby łączenia ==
[[Wikipedysta:Doles/Brudnopis/Wstawki| Wstawki w kodzie wysokiego poziomu]]
[[Wikipedysta:Doles/Brudnopis/Moduły| Osobne moduły z kodem w Asemblerze]]
|