Problem programowania i kompromis Asemblera w przypadku mikrokontrolerów PIC

Problem programowania i kompromis Asemblera w przypadku mikrokontrolerów PIC
Problem programowania podsumowano na rys. 1.
r_203_26_4
My, ludzie, wyrażamy nasze idee w złożonych i często luźno określonych formach językowych.
Komputer czyta i „rozumie” dane binarne i reaguje w precyzyjny sposób na dokładne instrukcje.
Jest to bezwzględnie logiczne i robi dokładnie to, co zostało powiedziane.
Biorąc pod uwagę ten podział językowy, w jaki sposób programista może pisać programy dla komputera?
Pojawiają się trzy sposoby wypełnienia luki:
(1) Człowiek uczy się kodu maszynowego.
To robili programiści czasami w bardzo wczesnych czasach, mozolnie zapisując każdą instrukcję w binarnym kodzie komputera, dokładnie tak, jak komputer to wtedy czytał.
Jest to niezwykle powolne, żmudne i podatne na błędy, ale przynajmniej programista odnosi się bezpośrednio do potrzeb i możliwości komputera.
(2) Użyj języka wysokiego poziomu (HLL – High-Level Language).
To tak, jakbyśmy w jakiś sposób poprosili komputer o naukę naszego języka.
W HLL instrukcje są napisane w formie, która w rozpoznawalny
sposób odnosi się do naszego własnego języka.
Inny program komputerowy, kompilator lub interpreter, następnie konwertuje ten program na kod maszynowy, który komputer może zrozumieć.
Programista ma teraz dużo łatwiejszy czas i może pisać bardzo
wyrafinowane programy.
Jest on jednak teraz oddzielony od zasobów komputera, a
program może być stosunkowo nieefektywny pod względem wykorzystania pamięci i szybkości wykonywania.
(3) Użyj asemblera.
To jest kompromisowa pozycja.
Każdemu zestawowi instrukcji komputera przypisany jest mnemonik.
Zazwyczaj jest to trzy- lub czteroliterowe słowo, którego można użyć do przedstawienia bezpośrednio jednej instrukcji z zestawu instrukcji.
Następnie programista zapisuje program za pomocą instrukcji mnemonicznej (symbolicznej).
Programista musi myśleć na poziomie komputera, ponieważ
pracuje bezpośrednio z jego instrukcjami, ale przynajmniej programiści mają do dyspozycji mnemoniki, zamiast faktycznie pracować z komputerowym kodem maszynowym.
Specjalny program komputerowy o nazwie Cross-Assembler,
zwykle działający obecnie na PC, konwertuje kod napisany w mnemonice na kod maszynowy, który zobaczy komputer.
Ponieważ komputer konwertuje kod asemblera na kod
maszynowy, w proces ten można wbudować szereg innych korzyści.
Na przykład Cross-Assembler może zajmować się większością
zadań związanych z przydzielaniem miejsca w pamięci programu i może przyjmować etykiety liczb i lokalizacji pamięci, co znacznie ułatwia zadanie programistom.
W początkach operacji obliczeń, programowanie w asemblerze
było używane do programowania prawie każdego typu komputera.
W dzisiejszych czasach jest to jednak w dużej mierze
zachowanie projektantów wbudowanych, szczególnie, kiedy przy użyciu mniejszych urządzeń 8-bitowych.
Dla wbudowanego projektanta Assembler oferuje ogromną
zaletę, ponieważ pozwala mu pracować bezpośrednio z zasobami komputera i prowadzi do wydajnego kodu, który wykonuje się szybko.
Ponieważ jest on tak bezpośrednio powiązany ze strukturą komputera, praca w asemblerze pomaga użytkownikowi nauczyć się struktury komputera.
Programowanie w asemblerze ma tę wadę, że jest raczej powolne, podatne na błędy i nie zawsze tworzy dobrze ustrukturyzowane programy.
Będziemy dążyć do rozwiązania tej zagadki w późniejszych wpisach.
Na razie, aby pisać proste programy i lepiej zrozumieć mikrokontroler, należy podjąć się nauki asemblera.
Autor: Tim Wilmshurst
Mam cię porównać do letniego dnia …..?

Komentarze z Facebooka

Komentarze obecnie - OFF.