Sida 6 av 7
Postat: 2 februari 2004, 11:27:00
av klintan
jag kommer nog skriva assembler iaf

Postat: 2 februari 2004, 11:40:40
av karlstedt
Citat från elfa:
"Högnivåspråk sparar tid. Man räknar med att det tar samma tid att programmera och avlusa en rad i ett högnivåspråk som en rad assemblerkod. Det gör det i storleksordningen 10 till 100 gånger effektivare att skriva även små program i högnivåspråk..."
Postat: 2 februari 2004, 11:43:28
av Kent
Men hur krångligt är det och hur svårt är det jämfört med assembler? Finns det någon logik i det?
Postat: 2 februari 2004, 12:35:42
av Illuwatar
Valet mellan högnivåspråk och assembler beror helt på vad man vill göra. Högnivå är oftast enklare att lära sig och man kan snabbare få till den funktion man vill ha. Nackdelen ligger i sämre kontroll på vad den faktiska koden på assemblernivå gör. Dessutom kan koden bli mindre effektiv jämfört med direktkodning (förutsatt att man verkligen behärskar assemblern). Kod som av tidskritiska själ måste fungera optimalt skriver man med fördel i assembler.
Fördelar högnivå:
* Lätt att lära sig, inte maskinunikt (förutom specialinstruktioner).
* Lätt att läsa, följa och sätta sig in i.
* Kortare utvecklingstid.
Nackdelar högnivå:
* Sämre kontroll på den faktiska koden (det blir assembler av kompilatorn).
* Koden kan bli mer minneskrävande.
* Svårare att beräkna cykeltider för rutiner.
* Bra, lättanvända kompilatorer är inte gratis.
Fördelar assembler:
* Är man bra så kan man göra mycket på liten plats.
* Man vet exakt vad som sker.
* Man har full kontroll ner på cykelnivå i programmets exekvering.
* Verktygen skänks bort av MCU-tillverkarna.
Nackdelar assembler:
* Svårt att lära sig (jämfört med högnivå).
* Processorunikt - varje MCU-familj har sin egen assembler.
* Svårläst source (kommentarer är ett måste).
* Längre utvecklingstid.
Detta är i alla fall så jag ser på detta - rätt verktyg vid rätt tillfälle.
Postat: 2 februari 2004, 17:15:03
av klintan
Med tanke på de här utläggningar känns de som jag borde tänka om och satsa på C. Nackdelen me kompilatorer. finns inga gratis.
Postat: 2 februari 2004, 17:20:00
av strombom
Till AVR finns ju GCC (WinAVR) som är gratis.
Postat: 2 februari 2004, 17:57:32
av mrmike
Finns till kompilatorer till PIC osså. Gratis sådana alltså.
http://www.gnupic.org/
Postat: 3 februari 2004, 07:03:47
av Kent
Men är det dumt att börja med assembler och sen gå över eller lära sig c. Det kanske rör ihop det hela. Eller är det bara en fördel att lära sig assembler bra.
Postat: 3 februari 2004, 09:40:27
av karlstedt
Aldrig fel att lära sig assembler!
Postat: 3 februari 2004, 14:34:34
av danei
Den enda risk du tar är att fatta vad C programer igentilgen gör
Postat: 8 mars 2004, 18:22:29
av gvs
Jag ser det helt tvärt om!
Tycker att Assembler är busenkelt jämfört med C, C++ eller JAVA trotts att jag har läst ca 15 Poäng högnivå och bara 2 Poäng Assembler. Högnivå fattar man ju inget av!
Postat: 8 mars 2004, 23:13:06
av Melker
Ja, assambler är relativt enkelt att lära sig, men när det kommer till att göra större projekt så brukar iaf jag bli rätt less på allt som måste hållas i huvudet när man skriver assambler och allt sparande fram och tillbaks till minnet. Skriver man i något högnivåspråk så slipper man tänka på sånnt, sköter kompilatorn åt en.
Postat: 9 mars 2004, 00:47:54
av henkebenke
gvs skrev:Jag ser det helt tvärt om!
Tycker att Assembler är busenkelt jämfört med C, C++ eller JAVA trotts att jag har läst ca 15 Poäng högnivå och bara 2 Poäng Assembler. Högnivå fattar man ju inget av!
Klart att assembler är enklare men därmed också mindre kraftfullt.
Att gå är enkelt. Att köra bil är svårare men mer effektivt. Kraftfullare verktyg kräver mer av användaren men rätt använda är de mångfaldigt mer effektiva.
Postat: 9 mars 2004, 08:37:34
av Illuwatar
Att assembler skulle vara mindre kraftfullt än högnivåspråk håller jag inte med om. Om så vore fallet skulle en kompilator inte funka så bra - resultatet ut från dessa är nämligen assembler...
Däremot är det oftast lättare att bygga upp programlogik med många kontrollsatser (for, if - else, case) med högnivåspråk. Att göra sådant i assembler kräver att man har tungan rätt i mun (praktisk erfarenhet från mitt Nixie-bygge där det största jobbet är att koda alla kontroller så ogiltiga värden på tid och datum inte kan matas in).
Postat: 9 mars 2004, 11:19:48
av RDX*
Jag säger som så att man behöver båda. Om man bara lär dig högnivåspråk så fattar man inte vad det är man egentligen gör. Man får oftast problem om man är beroende på hårdvaran. Om man bara kan skriva assembler så mister man den smidigheten man har i högnivåspråk.
..så kontentan är lär dig båda
