W sam raz w przypadku H8 jest chyba *bardzo* duża - tam również każda instrukcja może działać na dowolnym rejestrze/rejestrach (oprócz kilku nielicznych instrukcji odwołujących się do CCR).
W H8 jest jedna instrukcja MOV (w wersjach .B, .W i .L) która w połączeniu z trybem adresowania natychmiastowego daje to co LoaDImmediate. Może w PDP-11 było podobnie?
Standardowy tryb adresowania w H8. Chociaż AFAIR tam nie da się modyfikować zawartości PC instrukcją klasy MOV.
Didn't find your answer? Ask the community — no account required.
W
WTK
Dnia 05-03-2013 o 09:53:51 Waldemar Krzok snipped-for-privacy@zedat.fu-berlin.de> napisał(a):
<->
Chciałem zauważyć, że w przeciwieństwie do 8080 czy Z80, 6502 nie miał wielu instrukcji działających tylko na konkretnym rejestrze choć rzeczywiście takie były, ale z drugiej strony to ile tych rejestrów 6502 miał? ;) Za to wiele rzeczy można było zrobić wprost na pamięci a strona zerowa pamięci wręcz była traktowana jak dodatkowe rejestry procesora. Co by nie mówić filozofia totalnie odmienna od intelowskiej.
J
Jacek
Tutaj są wszystkie 56 instrukcje:
formatting link
W
Waldemar Krzok
H8 akurat nie znam. 6502 i 6800 trochę.
Właśnie PDP nie miała adresowania natychmiastowego. Dlatego to dziwne mov R0,(R7)+. R7 to Program Counter, a efekt to właśnie LDI.
W PDP mogłeś pomnożyć PC z SP i wartość wpisać do PC (albo SP). Obojętnie, czy to miało sens ;-).
Waldek
J
Jarosław Sokołowski
Pan Miroslaw Kwasniak napisał:
Może bardziej technologii. Drzewiej liczyć potrafili akuratnie, ale ze zmajstrowaniem takiej profilowanej prowadnicy bywały kłopoty.
Powini też wrócić do polewania wroga smołą i posypywania pierzem. To było bardzo widowiskowe. Właściwie to z powodów humanitarnych gorącą smołę można zastąpić czymś bardziej niskotopliwym. Współczesna chemia organiczna ma tu wiele do zaoferowania.
W
Waldemar Krzok
Am 05.03.2013 11:54, schrieb Jarosław Sokołowski:
Wosk, koniecznie pszczeli, bo to bardziej ekologiczne jest. Parafina to produkt z ropy naftowej, a to jest be.
Waldek
J
Jarosław Sokołowski
Pan Waldemar Krzok napisał:
Taką kombinację stosował już niejaki Dedal ze swoim synem.
G
Grzegorz Kurczyk
W dniu 05.03.2013 11:21, JDX pisze:
W wielu prockach są sztuczne mnemoniki assemblera. Np. w AVR tak naprawdę nie istnieje rozkaz przesunięcia artmetycznego w lewo LSL, jest to w rzeczywistości dodanie rejestru do samego siebie. czyli LSL r0 to tak naprawdę ADD r0, r0. Rozkazy SBR i CBR to nic innego jak ORI i ANDI.
Pozdrawiam Grzegorz
M
Michoo
W domyślnym konfigu 3x tyle za 32 bity. W minimalnym przypadku 80% dla openRISC i +- tyle samo dla µBlaze. (Wg przelicznika 1k LUT ~ 10k gates)
Tylko z materiałów an stronie wychodzi, ze to full-feature µC. Specyfikacja wygląda jak jakiegoś taniego ARMa, tyle, ze z aż 8MB flash/ram, więc target to dość duże systemy.
Używanie w dużym projekcie 8051 naprawdę przypomina mi właśnie miotanie granatów za pomocą trebusza podczas gdy prościej zrobić z tekturowej rury granatnik bezodrzutowy. ;)
M
Michoo
To ten w którym trzeba było oznaczać funkcje jako reentrant, bo inaczej zarówno argumenty jak i zmienne pakował jako statyczne?
A to z większością kompilatorów tak jest.
Z
Zbych
A wolałbyś żeby od razu użył programowej emulacji stosu dla argumentów?
W przypadku gcc czasem ciężko zauważyć.
W
Wojtek
tak.... to ciekawe dlaczego jak piszê w asm to kod mam 1kB a po przepisaniu na ci skompilowaniu mam 1,7kB i to po wielkich bojach z optymalizacj±.....A programista ASM ze mnie ¿aden. Kompilator ma pare udanych implamantacji ale ogólnie te¿ kulfony robi przy generowaniu kodu.
A
Anerys
U¿ytkownik "Wojtek" snipped-for-privacy@laaapppii.plll napisa³ w wiadomo¶ci news:kh72eg$ltj$ snipped-for-privacy@news.task.gda.pl...
W ogóle jest jaka¶ dziwna tendencja chyba we wszystkim, czy prawie wszystkim, ¿e praktycznie identyczne, czy podobne programy, obrastaj± w craz wiêkszy kod wynikowy, nie usprawiedliwiony np. dodawanymi funkcjami. Ró¿ne kompilatory dla dok³adnie takiego samego kodu wej¶ciowego produkuj± ca³kowicie ró¿ny w objêto¶ci kod. We¼my z Pascala np. (darujcie "interpunkcjê", ostatni raz rze¼bi³em 20 lat temu...) program hello; (niektóre kompilatory OIDP pozwalaj± na pominiêcie tej deklaracji) begin writeln ('Dzien dobry'); end. jeden kompilator da³ 30-kilka kB kodu, inny ok. 7, dla ciekawo¶ci powiedzmy, ¿e "przeportowa³em" to na mocno niszowego "Zdzicha" (dostêpny w necie, dla DOS) kompilat by³ poni¿ej 100B (tak, bajtów, nie kilo, czy mega...). A robi³y dok³adnie to samo. Zero do³±czeñ, zero innych deklaracji, itp. a dokleja³y kilkadziesi±t kB ch.j wie czego, psu na budê potrzebnego... Jestem niemal pewien, ¿e gdyby tu i ówdzie poobcinaæ fuzle, to programy zrobi³y by siê mniejsze... tylko mo¿e kompilatory powinny rzetelniej generowaæ kod? Nie doklejaæ czego¶, co programowi nie jest potrzebne. A jak zd±¿y³em siê zorientowaæ, pamiêæ w naszych projektach (ja siê nie zajmujê, nie to zdrowie... Ale mo¿e kiedy¶?) :)) bywa towarem deficytowym...? ... no dobra... nic nie mówi³em...
S
Sebastian Biały
Przecież dokleileś I/O. Zapewne z cała duperelowatością obsługi różnych typów, printowania floatów itp. Pisz ostrożnie a zobaczysz że nic złego się nie ssa samoczynnie. Kompilatory nie są aż takie złe.
M
Michoo
W końcu są "różne".
A to zależy od wielu opcji czasu kompilacji.
Bardziej rozbudowana lub nie stripowana biblioteka.
Mniej rozbudowana (albo np wolniejsza) biblioteka. 30 kB to żaden rozmiar, więc w czym problem?
Stripowana biblioteka, brak nagłówka PE (pliki .exe zawierają w sobie m.i. plik com piszący, że "ten program jest pod windę", brak importowanych bibliotek, etc...
a writeln to skąd się niby wzięło?
A potem jak się trochę więcej napisało to nagle ten pierwszy tył o dodatkowe kilka kB kodu a ten drugi o kilkadziesiąt.
Po grzyba ktoś ma optymalizować kompilator pod kątem minimalnego programu, który nic nie robi?
M
Marek Borowski
W tym ze do zapewnienie dzialania zgodnie z wymaganiami wystarczy 1kB. Niektorzy po prostu lubia miec rzeczy "szyte na miare" a nie na wszystkie mozliwe okazje.
j.w.
Generalnie inzynieria programowania jest niewolnikiem ekomomi i pojecia "dobry" "optymalny" program sie zdewaluowaly. Teraz dobry program to ten na ktorym da sie jak najwieciej zarobic w jak najktorszym czasie przy spelnieniu wymagan specyfikacji. A kiedys dobry program to taki ktory zrobi to co jest w specyfikacji w jak najktorszym czasie i zajmnie jak najmniej miejsca. Ni huhu nie pasuje do wspolczenej wszechobecnej komercji gdzie TTM jest najwazniejszym parametrem.
Pozdrawiam
Marek
G
Grzegorz Niemirowski
Marek Borowski snipped-for-privacy@a.borowski.com> napisa³(a):
Na miarê czego? Komputera z 4 GB RAMu? Co za ró¿nica ile zajmie hello world? Mo¿e powiesz, ¿e s± mikrokontrolery z 1 kB RAMu albo mniej. Tak, dlatego pytam co to za miara. Ale teraz tych kostek jest mnóstwo, s± tanie i nie ma sensu walczyæ o ka¿dy bajt. Poczytaj sobie
formatting link
A ten najkrótszy czas i najmniejsze miejsce to nie by³a ekonomia? Z jakiego powodu, je¶li nie ekonomicznego, ten program musia³ byæ ma³y i szybki? Teraz ekonomia dzia³a tak samo, tylko sprzêt jest trochê inny. Zobacz sobie jakie mo¿liwo¶ci ma Raspberry Pi i przy jakiej cenie.
A
Anerys
Nie mówiê, ¿e nie...
Bezbajerowo. Jeszcze pod DOSem. TP 3 dawa³ ok. 30 kilku kB, TP7 ju¿ poni¿ej
Tylko po co ona, gdy jedynym zadaniem programu by³o krok po kroku wyrzuciæ kilkana¶cie znaków na ekran... w C64 schodzi³êm poni¿ej 50 bajtów w³±cznie z danymi (fakt, skaka³em do podprogramu... ale gdzie¶ widzia³em listing, który bezp¶rednio dawa³... i nie obros³o to w zbêdny kod. Ale to w C64 by³ mus, liczy³ siê ka¿dy bajt. I dobrze.
Choæby w czasach, w których to robi³em, ¿e taka ró¿nica by³a istotna. A je¶li program spokojnie mo¿e byc ma³y, to nie widzê powodów, aby by³ du¿y.
Z tre¶ci programu. Nic nie by³o definiowane w tre¶ci przez include, ¿adnej dyrektywy do³±czaj±cej, nic, poza tymi 4 liniami.
Klepa³em trochê, ale ju¿ zapomnia³em szczegó³ów... tylko czemu wspomniany przeze mnie Zdzich umia³ siê zachowaæ i nie ty³ zanadto?
Robi - wy¶wietla na ekranie "Dzien dobry" (bez ogonka, bo wtedy ich prawie nie znano(1991)) Ja chcê od programu, aby maj±c tekst j.w., program zrobi³: Licz±c od pierwszego do ostatniego znaku, pobra³ je po kolei i wyrzuci³ na ekran. Niech 100 bajtów kodu pobiera te znaki, drugie 100 wyprowadzi na ekran, trzecie 100 utrzyma to w ca³o¶ci. Ju¿ nie bêdê a¿ tak sk±py. Ale, ¿eby to nie by³o po 10 kB, bo co by te 10 kB robi³o w swojej czê¶ci zadania... czy ile tego by³o... skoro setka poradzi³± sobie równie dobrze... to co robi pozosta³e 9900 bajtów? Ja je chcê wyrzuciæ. Tylko tyle.
A
Anerys
Trafnie to uj±³e¶. Program ma KONKRETNE zadanie. Dajmy na to, ma drapaæ siê po dupie. Nie potrzebujê wiêc sprawdzania, czy przypadkiem nie mruga oczami, czy nie rosn± mu bia³e w³osy, nie potrzebujê do³±czania biblioteki machania nogami. Program ma tylko i wy³±cznie drapaæ siê po dupie, a co za tym idzie, zawieraæ tylko i wy³±cznie procedury drapania siê po dupie (i zintegrowane, albo w oddzielnym pliku, dane do drapania siê po dupie, czyli dupa jest tu - wspó³rzêdne x,y,z, razem ¶jakie¶ powiedzmy, 12 bajtów, zak³adaj±c hojne
32-bitowe okre¶lanie pozycji ka¿dej ze wspó³rzêdnych, punkt pocz±tkowy x1,y1,z1, punkt koñcowy x2,y2,z2, a ca³y ruch drapania jest prostym ruchem miêdzy pocz±tkiem a koñcem. Przez wyrzucenie wszystkiego niepotrzebnego chcê osi±gn±æ, by program, opieraj±c siê mo¿liwie o najmniejsz± mo¿liw± ilo¶æ pamiêci, przez brak konieczno¶ci zajmowania siê zbêdnymi kawa³kami kodu, by³ w stanie w czasie rzeczywistym przeliczaæ ruch rêki do drapania siê po dupie tak, aby nie musia korzystaæ z predefiniowanych tablic okre¶laj±cych kolejne pozycje drapaka. W razie czego pozwalam sobie jedynie na pêtlê spowalniaj±c±, je¶li ruch by³by za szybki. Oraz prost± procedurê sprawdzaj±c±, czy ci±g miêdzy pocz±tkiem i koñcem nie wychodzi poza dupê. Zgrubnie szacujê taki program na 300-500 bajtów.
Ja ju¿ od dawna tak to widzê.
Nie inaczej.
Hmm... nie wiem, w czym by³ pisany Norton Commander, ale na XT 4.77/8 startowa³ poni¿ej sekundy. GW-Basic (ok. 60kB) startowa³ natychmiast. A z dyskietki przez czas potrzebny do odczytania kodu programu. Dzisiaj... mam maszynê 3 GHz dwurdzeniow±, Total Commander startuje d³u¿ej...
B
Bezznaczenia
Bo system taki jak windows powinien zostac napisany od nowa nie jako nakladka nakladki na nakladke.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.