Asembler X86/Łączenie z językami wysokiego poziomu

Z Wikibooks, biblioteki wolnych podręczników.

[edytuj] 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 HLL-a 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.

[edytuj] Sposoby łączenia

  1. Wstawki w kodzie wysokiego poziomu
  2. Osobne moduły z kodem w Asemblerze