W wiekszosci procesorow operacje typu AND A,A, OR A,A nie nie robia nic, bo cos robia:) A konkretnie ustawiaja stosownie flagi w rejestrze stanu, co ma sporawe zastosowanie.
W wiekszosci procesorow operacje typu AND A,A, OR A,A nie nie robia nic, bo cos robia:) A konkretnie ustawiaja stosownie flagi w rejestrze stanu, co ma sporawe zastosowanie.
W procesorach ARM nie ma instrukcji NOP jako takiej. Asembler rozumie jednak ten mnemonik i zamienia na MOV R0,R0 (o tym samym kodzie rozkazu). BTW: W ogóle w ARMie w instrukcji można podać, czy ma zmieniać flagi, czy nie (literka 's' na końcu mnemonika). Można też doczepić działanie w zależności od flag (kolejne kilka literek) tak że konstrukcje w stylu if/then/else/endif robi się "jednym ciągiem" rozkazów wykonywanych warunkowo. I skrzętnie z tej możliwości korzysta np. arm-elf-gcc.
8080 jeszcze. Tam bylo xor a,a - tryb rejestrowy, jeden bajt, jeden cykl.
J.
Czyli w tworcy symulatora nie budzily watpliwosci :-)
Zasadniczo zdziwilbym sie gdyby bylo inaczej, ale kto wie :-)
To by znaczylo ze procek ma jakis latch adresu do tej operacji..
Hm, moze sie myle, ale sfr chyba mozna uzyc jako operanda
A w ogole to spodziewalem sie tu problemow z tym czy wartosc bedzie SP czy SP+/-1. Niby dokumentacja podaje kolejnosc .. ale czy na pewno ?
J.
:-)
AlexY napisał(a):
to chyba jakas masowa choroba, bo ja tez musialem sie przez dluzsza chwile zastanawiac o co chodzi i co jest nie tak...:)
Użytkownik Pszemol napisał:
no... w czym piszesz? na jakim poziomie jestes w stanie zoptymalizowac czy tez zdebuggowac kod? ASM czy C. W C mozesz zoptymalizowac kod pod katem sposobu jego dzialania, zastosowac najlepszy algorytm, ale bez wiedzy jaki bedzie wynik assemblacji poszczegolnych polecen C robi sie to na slepo, moze sie okazac ze to co w C jest dluzsze w kodzie maszynowym bedzie krotsze niz dluzszy C. chyba zamotalem :)
moze jestem radykalny w tym wzgledzie ale od lat skladam hold assemblerowi i jak slysze (czytam) o stosowaniu jezykow wysokiego poziomu dla MCS51 to mi rece opadaja :) ale tez mam swiadomosc ze napisanie routera na ARM w ASM jest w praktyce niewykonalne
Kawa³ki kodu s± w C, inne kawa³ki w assemblerze...
Dlaczego nie? Je¶li kod siê mie¶ci, to stosowanie C jest praktyczniejsze bo prowadzi do rezultatów SZYBCIEJ, a wiêc mniejszym kosztem... Elektronika jest dzi¶ tania, pamiêæ za grosze, a czas coraz dro¿szy. To naturalna tendencja, ¿e pamiêci przybywa i programi¶ci przerzucaj± siê na jêzyki wysokiego poziomu...
ASM u¿ywa siê tam, gdzie siê go musi u¿ywaæ - nie oszukujmy siê, nie jest to jêzyk ani naturalny dla cz³owieka, ani wygodny w u¿yciu. Nawet je¶li kto¶ siê nim umie biegle pos³ugiwaæ to nie wszêdzie asm siê nadaje i ma³o tego - nie wszêdzie potrzebna jest taka precyzja programowania aby instruowaæ procesor do pojedynczych poleceñ... Rozdzielczo¶æ jak± daje C, nawet na 8051, jest czasem wystarczaj±ca. Nie ma co posuwaæ siê do asemblerowego fanatyzmu, no nie? :-)
Użytkownik Łukasz Sokół napisał:
[..]oba zabieraja 2 bajty i jeden cykl maszynowy
Użytkownik Pszemol napisał:
[..]niemniej sprowadza sie to wlasnie do tego ze program rosnie w sile, znaczy sie w bajty ;)
na szczescie robie dla siebie a nie zarobkowo :) stac mnie na robienie predkosciomierza do samochodu przez pol roku (dziala ale jeszcze go nie skonczylem) z zegarmistrzowska precyzja
no o wlasnie to to ... nie licza sie z pamiecia i cyklami proca... osobiscie optymalizuje tak by wydusic kazdy bajt kodu i zaznaczam sobie elementy ktore moge usunac jesli zabraknie pamieci na nowe featuresy :)
ekhm ekhm... osmiele sie miec w tym temacie odmienne zdanie... jest 10 typy ludzi: ci ktorzy mysla binarnie i ci ktorzy nie ;) nie moje, ale fajne :)
czy ja wiem, program centralki telefonicznej na 51 napisalem w 3 miesiace w ASM, zajmuje 1283 bajty ma obsluge 4Lwew 1Lzew oraz LCD 2*24 na HD44780, sterowanie DTMF. ale drugi raz to bym sie powaznie zastanowil czy na pewno tego potrzebuje ;)
gwoli scislosci nie zamierzam nikogo przekonywac ze C jest be, wolna wola, pragne jedynie pokazac ze mozna inaczej, sam C nawet nie znam, kiedys probowalem ale zostal chyba stworzony po to by zniechecic :)
Wszyscy wiemy, ¿e "mo¿na inaczej". Pytanie tylko czy warto... A co do znajomo¶ci C - warto go znaæ i stosowaæ tam gdzie ma zalety... Dziwie siê ¿e Ci nie podesz³o C, bo wielu mówi ¿e to NIE jest jêzyk wysokiego poziomu, ¿e bli¿ej mu do makroasemblera ni¿ do prawdziwych jêzyków wysokiego poziomu...
No ale chyba zrobi³o siê bardzo off-topicznie, dla mnie EOT.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required