Forum: Mikrocontroller und Digitale Elektronik Assembler im Selbststudium?


von Axel H. (mf-futzi)


Lesenswert?

Hallo an alle,

ich habe mal eine grundsätzliche Frage zu Assembler. Ich bin erst vor 
wenigen Wochen mit uC gestartet und habe mit Bascom angefangen, weil ich 
da schon einige Kenntnisse hatte. Nach einem Beitrag hier im Forum haben 
mich dann einige von Euch 'freundlich' darauf hingewiesen ;-), dass man 
mit Assembler die Programmierung besser hinbekommt und besser versteht 
was im uC eigentlich vorgeht. (Ich will aber keinen neuen Tread starten, 
welche Sprache die beste ist - gibts schon genügend).

Also habe ich mich etwas in Assembler eingearbeitet und mit dem Tutorial 
befasst. Einige Codes habe ich dann auch hinbekommen (LCD/Uhr). Aber 
wenn ich ehrlich bin, also so richtig 100%ig habe ich nicht alles 
verstanden. Man kann dann versuchen, hier im Forum zu fragen und einige 
Schnipsel auffangen, um seinen Code funktionsfähig zu bekommen. Manchmal 
wird man aber im Forum auch etwas 'von der Seite angeredet', wenn eine 
Frage gar zu einfach oder primitiv erscheint. Ich hatte mir auch noch 
ein Buch besorgt, das habe ich aber zurrückgegeben, weil da für mich nur 
'Böhmische Dörfer' drinstanden.

Also meine Frage, auch an die Erfahrenen oder Profis: Ist Assembler nur 
durch Studium des Tutorials und der Datenblätter im Selbststudium 
einigermaßen gut zu erlernen? Oder braucht's da mehr?
Mein Anspruch war eigentlich auch, irgend wann mal, für eine eigene 
Aufgabenstellung eigenständig meinen Code zu entwerfen und nicht nur 
nachzubauen.

Wäre nett, wenn mir der Eine oder Andere seine Erfahrung mitteilen 
würde.


Axel

von jack (Gast)


Lesenswert?

>Also meine Frage, auch an die Erfahrenen oder Profis: Ist Assembler nur
>durch Studium des Tutorials und der Datenblätter im Selbststudium
>einigermaßen gut zu erlernen? Oder braucht's da mehr?

Mehr brauchts tatsächlich nicht.
Außerdem gibts im Netz auch noch viele andere (ebenfalls gute) 
Tutorials.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Am Anfang isses schwer, aber schon möglich ich habs ja auch hinbekommen 
;)
Allerdings würd ich empfehlen bei was einfachem zu beginnen, z.B. 
Ansteuerung eines Schieberegisters (ohne interne SPI) oder einer 
7SegAnzeige oder so, und dann schritt für schritt überlegen:
- Was muß passieren
- Wie würde ich das normalerweise programmieren
- Wie setz ich das in ASM um (Befehlsliste ist da hilfreich)

Ist natürlich etwas erfahrung dabei, am Anfang verdrehts einem son 
bischen die Gehirnwindungen, mach aber Spaß :)

von Frank L. (hermastersvoice)


Lesenswert?

Datenblatt zum Chip lesen, verstehen was die Befehle machen und erstmal 
selbst loslegen mit programmieren. Wenn man dann mal an seine Grenze 
stösst, dann in fremdem Code nachsehen wie Andere es machen, sonst lernt 
man nix. Erst wenn man selbst verstanden hat was die Befehle tun, kann 
man nachvollziehen was in fremdem Code steht. Ich schreibe ausdrücklich 
nachvollziehen nicht abtippen.

bye

Frank

von Boxi B. (boxi)


Lesenswert?

Hallo Axel,
du machst das schon richtig. Am Anfang brauchst du Durchhaltevermögen 
und mußt dich auch mal stunden- oder tagelang durch ein Problem 
durchbeißen. Aber mit wachsender Erfahrung wird es dir dann nach und 
nach möglich, deine Vorstellungen auch umzusetzen.

Was hilft ist natürlich das Datenblatt deines Controllers wälzen, auch 
wenn man nicht immer alles bis gar nix auf Anhieb versteht. Und dann 
versuchen in kleinen Progrämmchen das auszuprobieren, was man sich da 
rausgezogen hat.

Und nicht zuletzt gibt es dieses hilfreiche Forum, mit dem man auch erst 
lernen muß umzugehen und sich vor allem nicht durch bescheuerte 
Antworten abschrecken lassen darf.

Früher oder später wirst du wahrscheinlich nicht um C herumkommen.

Welchen Hintergrund hast du? Hast du beruflich oder in der ausbildung 
mit solchen Saachen zu tun?

Viel Spaß
Boxi

von tututack (Gast)


Lesenswert?

Hallo
Ich hab das so gemacht:

Fertigen Code genommen und mit die Funktionen auf einem Testboard 
angeschaut. Dann überlegt was ich verändern könnte und es auch versucht. 
So Stück für Stück eingearbeitet.

bye

von xlomx (Gast)


Lesenswert?

ich habe mit der seite angefangen.
http://www.avr-asm-tutorial.net/

ich habe nur die blink-LED progamme abgeschrieben, dann modifiziert. am 
anfang ein lauflicht drausgemacht. dann irgendwelche muster.
Zuerst das einfache ohne hardware-timer und dann das mit timer und 
interrups.
Den Rest habe ich dann mit den datenblatt und dem instucten-set von 
Atmel gemacht. Das geht dann schon relativ einfach und ist nur mit mäßig 
frust verbunden :)
zum üben. schreibe in ASM for/while schleifen, if then strukturen. Das 
hilft ungemein :) und halte dich bei denen nicht daran wie das andere 
machen. versuche selber mal rauszufinden wie das geht. im 
blinkledprogramm ist ja schon alles drin

von Noch so einer (Gast)


Lesenswert?

> Mehr brauchts tatsächlich nicht.

Sowas nennt man pädagogisch-didaktische 'Blinde-Kuh' spielen.

von Peter D. (peda)


Lesenswert?

Du kannst hier auch Anfängerfragen stellen, nur mußt Du es dem Antworter 
nicht unnötig schwer machen.

Wenn der erstmal ne halbe Stunde recherchieren muß, wovon Du überhaupt 
sprichst, ist klar, daß er verärgert reagiert.

Wenn Du Dich also auf irgendwelche Codebeispiele beziehst, nicht lange 
um den heißen Brei reden, sondern exakt URL, Filename, Zeilennummer 
angeben, wo Du das Problem hast.

Wenn Du einen Beispielcode modifizierst, dann nicht umständlich 
erklären, wo Du X durch Y ersetzt hast, sondern das komplette File als 
Anhang schicken. Und niemals irgendwas aus dem Gedächtnis aufschreiben, 
sondern immer Copy&paste!

Wenn dann noch das Subjekt beschreibend ist, also nicht "helft mir!!!", 
dann sollten auch gute Antworten kommen.

Wenn Du Schwierigkeiten mit Grundlagen hast (wie berechnet man einen 
Basiswiderstand, LED-Vorwiderstand, was sind Binärzahlen, AND, OR, was 
ist SRAM, EEPROM, was sind Adressen, Daten usw.), dann sag das. Sonst 
wird sowas vorausgesetzt.


Peter

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Axel Hüser wrote:
> Hallo an alle,
>
> ich habe mal eine grundsätzliche Frage zu Assembler. Ich bin erst vor
> wenigen Wochen mit uC gestartet und habe mit Bascom angefangen, weil ich
> da schon einige Kenntnisse hatte. Nach einem Beitrag hier im Forum haben
> mich dann einige von Euch 'freundlich' darauf hingewiesen ;-), dass man
> mit Assembler die Programmierung besser hinbekommt und besser versteht
> was im uC eigentlich vorgeht. (Ich will aber keinen neuen Tread starten,
> welche Sprache die beste ist - gibts schon genügend).

Es gibt ähnliche Hinweise (Assembler ist doll zum Verstehen und 
Ausreizen eines µC). Es gibt auch gegensätzliche (Assembler ist für 
Programmieranfänger nicht so doll). Ich kann beiden zustimmen ;-)

> Also habe ich mich etwas in Assembler eingearbeitet und mit dem Tutorial
> befasst. Einige Codes habe ich dann auch hinbekommen (LCD/Uhr). Aber
> wenn ich ehrlich bin, also so richtig 100%ig habe ich nicht alles
> verstanden.

Genau an der Stelle möchte ich einhaken: Das Tutorial ist nicht in Stein 
gemeisselt. Es kann jederzeit verständlicher und ausführlicher 
geschrieben werden. Die Autoren von Tutorials sind oft keine Anfänger 
mehr und es fällt schwer sich in den Wissensstand eines Anfängers 
einzudenken. Hilf' den Autoren, sag' wo es klemmt. Du bist sicher nicht 
der Einzige, der an manchen Stellen Probleme hat. Wenn keiner seine 
Probleme meldet, kann es nicht verbessert werden.

> Man kann dann versuchen, hier im Forum zu fragen und einige
> Schnipsel auffangen, um seinen Code funktionsfähig zu bekommen. Manchmal
> wird man aber im Forum auch etwas 'von der Seite angeredet', wenn eine
> Frage gar zu einfach oder primitiv erscheint.

Kann passieren. Eine Frage "Ich mache gerade das Beispiel x aus dem 
Tutorial durch, verstehe aber a im Schritt C nicht. Kann mir jemand 
dabei helfen?" wird funktionieren.

> Ich hatte mir auch noch
> ein Buch besorgt, das habe ich aber zurrückgegeben, weil da für mich nur
> 'Böhmische Dörfer' drinstanden.
>
> Also meine Frage, auch an die Erfahrenen oder Profis: Ist Assembler nur
> durch Studium des Tutorials und der Datenblätter im Selbststudium
> einigermaßen gut zu erlernen? Oder braucht's da mehr?

Meiner Ansicht nach, sollte man eine Grundidee haben, wie Programmierung 
an sich funktioniert. Wie man dann ein Programmkonstrukt 
(Abfrage/Entscheidung oder eine Schleife) realisiert, kann man sich aus 
den vorgegebenen Sprachelementen zusammensuchen. Das Einarbeiten in das 
Programmieren an sich, fällt (fiel) mit mir Hochsprachen wesentlich 
leichter. Assembler in allen möglichen Varianten lerne ich nebenbei beim 
Debuggen von Hochsprachencode.

> Mein Anspruch war eigentlich auch, irgend wann mal, für eine eigene
> Aufgabenstellung eigenständig meinen Code zu entwerfen und nicht nur
> nachzubauen.

Das wirst du auch irgendwann schaffen. Wenn es dich tröstet: Viele 
Leute, auch welche die langjährig programmieren, suchen sich bei einem 
neuen Projekt erst Beispielcode, der in die geplante Richtung geht und 
ändern den ab, bis die Sache verstanden ist. Was komplett eigenes kann 
man dann immer noch machen.

> Wäre nett, wenn mir der Eine oder Andere seine Erfahrung mitteilen
> würde.
>
>
> Axel

von olaf (Gast)


Lesenswert?

> Ist Assembler nur
> durch Studium des Tutorials und der Datenblätter im Selbststudium
> einigermaßen gut zu erlernen? Oder braucht's da mehr?

Du brauchst zwingend ein gutes Buch das dir die Assemblerprogrammierung
anhand eines Prozessors erklaert. Wichtig ist dabei nicht das du die
Befehle eines Prozessors kennst oder aehnlichen Unsinn. Sowas lernt
man naemlich automatisch nebenbei. (1)

Du musst die Hintergruende verstehen, also was Zeiger sind und wo man 
sie einsetzt, was ein Stack macht, wieso schieben und multiplizieren 
identisch ist, Unterschied zwischen schieben und rotieren, Bedeutung von 
And/Or/Xor, Verhalten bei Ueberlauf eines Registers. Was ein IRQ macht 
usw..usw...

Wenn du das alles mal fuer einen Prozessor verstanden hast dann kannst 
du den Dialekt des naechsten Prozessors verstehen indem du einfach nur 
das Datenblatt liesst. Und dieses wissen ist es auch das du spaeter 
mitnimmst und brauchst um eine beliebige Hochsprache einzusetzen.

Wenn man glaubt sich das sparen zu koennen und einfach nur schaut was
mov a,b macht wird man immer nur Loser 2.er Klasse bleiben.

Olaf

1: In meinem Falle war das uebrigens Programing of Z80 von R.Zaks. Das 
Buch waer auch heute noch gut, aber ist eher unbrauchbar weil du die 
Beispiele nicht an einem praktischen Prozessor nachvollziehen kannst da 
du keinen Microcontoller auf Z80 Basis hast. Aber dein Buch sollte halt 
in die Richtung gehen....

von Hannes L. (hannes)


Lesenswert?

@Axel Hüser:
Ich dachte auch, dass mir ein Buch helfen könnte und kaufte das AVR-Buch 
von Stolpe (Elektor). Nunja, wirklich geholfen hat es mir nicht, wenn Du 
mal reinschnuppern willst, kann ich es Dir gerne mal für ein paar Wochen 
leihen.

Ein gutes Buch betreffs AVR-ASM-Einstieg kann ich Dir nicht empfehlen, 
ich kenne keins und ich werde nicht alle durchprobieren. Wenn es Dir 
nicht um die Erklärung des Befehlssatzes geht, sondern eher um 
Allgemeines oder um Algorithmen, dann solltest Du auch mal die 
Online-Version des Rowalt-Buches lesen. Das ist zwar nicht für ASM 
sondern orientiert sich an BASCOM, hat aber auch für den ASM-Anfänger 
recht interessante Informationen. Es gibt zumindest Denkanstöße.

Das Wichtigste wird wohl (wie überall beim Lernen) sein, dass Du nicht 
zu große Schritte auf einmal machst. Du solltest in eigenen Programmen 
darauf achten, dass Du jede Codezeile (im Zusammenspiel mit den 
beteiligten Codezeilen) auch wirklich verstehst und auch sagen kannst, 
warum Du das so und nicht anders gemacht hast. Nur Copy & Paste reicht 
da nicht.

Zu den "schrägen Antworten". Wenn der Helfende sieht, dass die Frage 
unüberlegt war oder dass der Fragende nur zu faul war, ins Datenblatt zu 
schaun, dann gibt es schon mal (auch von mir) eine schräge Antwort. Ist 
die Frage jedoch eindeutig, dann gibt es auch eine eindeutige Antwort. 
Manchmal ist die Antwort aber auch etwas in Humor eingebettet, also 
nicht gleich beleidigt sein. Und wenn Du auf ASM-Fragen mal BASCOM- oder 
C-Antworten bekommst, dann ignoriere sie doch einfach. Besonders schräge 
Antworten ernten die, die mit Null Vorkenntnissen gleich die ultimative 
Weltverbesserungslösung realisieren wollen und dabei nicht erkennen, 
dass die Naturgesetze nicht im Gesetzbuch stehen, also nicht umgangen, 
gebrochen oder ignoriert werden können...

...

von elektriker (Gast)


Lesenswert?

Ich hab mir damals ein gutes Buch gekauft, dass benutze ich heute noch 
als nachschlagewerk, das hat zwar 40 euro gekostet, aber war den preis 
auf alle fälle wert. Das behandelt sogar auch den einstieg in c. Den 
Name weiss ich grade nicht mehr ist aber vom oldenbourg verlag.

von Auch ein Einsteiger (Gast)


Lesenswert?

Hallo,

kann es sein, dass es sich dabei um dieses Buch handelt?

http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1186622.de

Kennt noch jemand dieses Buch? Möchte mir nämlich auch ein Buch zulegen, 
um weiter in die materie eintauchen zu können!

Danke im Vorraus auf eure Antworten
MFG

von spess53 (Gast)


Lesenswert?

Hi

Ein gutes Buch ist für den Anfang auf jeden Fall zu empfehlen. Als ich 
mit Programmieren angefangen habe, war an Internet überhaupt noch nicht 
zu denken. Da ging es gar nicht ohne. Wenn das oben genannte halbwegs 
das hält, was es verspricht, scheint das ein guter Einstieg zu sein.
Noch ein kleiner Tipp: Versuche dein Programm in überschaubare 
'Häppchen' einzuteilen. Die kannst du dann im Simulator ausgiebig 
testen. Am besten in einem seperaten Programm, das nur die notwendigen 
Initialisierungen enthält.

MfG Spess

von Marko (Gast)


Lesenswert?

ich hab mit diesem:

http://www.amazon.de/Mikrocomputertechnik-Controllern-AVR-RISC-Familie-Programmierung-Assembler/dp/3486580167/ref=sr_1_3?ie=UTF8&s=books&qid=1196439233&sr=8-3

angefangen, ich glaub das zuvorgenannte ist da nur die dritte Auflage 
davon,
kanns aber absolut empfehlen.
Die verwendeten AVRs sind zwar nicht unbedingt die Aktuellsten,
aber das kann man meist einfach übertragen. Zur Not
schaut man halt doch in Datenblatt und sucht sich das beschriebene
Register für seinen Chip raus. DAS TEIL IST GUT.

von Gregor B. (gregor54321)


Lesenswert?

Ich habe mit Hilfe des AVR Instruction Set (1) asm auf AVR gelernt. 
Zugegeben, ich konnte vorher schon auf dem C64 BASIC programmieren. Das 
wichtigste, um auch nach einer Woche Unterbrechung an seinem Project 
weiter zu kommen ist, dass man sein Programm in funktionale Abschnitte 
einteilt. Hochsprachler würden sagen "Objekt orientiert". Weiterhin ist 
auf ein Programmablaufplan (2) sehr vorteilhaft, um sich später noch im 
vielen (zumeist unkommentierten) Code zu zurecht zu finden.
Außer der AVRStudio Hilfe (Präprozessoranweisungen) habe ich nix weiter 
gebracht, um diverse kleinere Sachen erfolgreich umzusetzten.

(1) http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf
(2) 
http://de.wikipedia.org/wiki/Bild:Flussdiagramm_%28Programmablaufplan%29.png

von Uwe (Gast)


Lesenswert?

Hi!
Ich denke 'nur' das Datenblatt zu lesen wird nicht helfen weil da zb. 
nicht drinnsteht wie man in ASM eine Wurzel zieht, 16x16 Bit 
multipliziert,
oder 1024 x 1,6 rechnet. Dazu muss man dann schonmal irendwo "mausen" 
gehen, auch wenn es nur mit den Augen ist.(Grundlagenwissen mal 
vorrausgesetzt) Das I-Net ist aber recht hilfreich und Fragen kostet 
nichts. Eine genaue Problembeschr. ist allerdings sehr hilfreich. -und 
Dummschwätzer sind überall zu finden.

Viel Erfolg, Uwe

von Axel H. (mf-futzi)


Lesenswert?

Hallo an alle,

also erstmal vielen Dank für Eure Erfahrungsberichte. Es hat mich sehr 
darin bestärkt, jetzt mit Assembler doch weiter zumachen. Ich war schon 
fast wieder soweit, auf Basic umzusteigen.

"Welchen Hintergrund hast du? Hast du beruflich oder in der ausbildung
mit solchen Saachen zu tun?"


Also ich programmiere nur zu meinem Vergnügen, um am Wochenende mal 
etwas von meinem Job abschalten zu können. Es macht mir halt viel Spass. 
Früher habe ich viel VBA programmiert, deshalb zuerst meine Vorliebe für 
Basic.

Vielleich habe ich mir am Anfang auch etwas zuviel zugemutet (LDC, Uhr). 
Ich werde mir erstmal nochmal Blink-LEDs, Lauflicht und Taster zu Gemüte 
führen. Das Datenblatt von meinem Atmega, sowie die Befehlscodes 
verwende ich auch immer. Ich werde mich vielleicht mal noch nach einem 
Buch umsehen.

Also Danke nochmal
Axel

von Thorsten (Gast)


Lesenswert?

Ich denke du hast das schon richtig erkannt, ein Projekt mit LCD und 
einer Uhr ist für den Anfang sicher zu komplex. Sowas endet nur darin, 
dass einem die Lust am Programmieren vergeht. Vergleich das einfach mal 
mit einer Fremdsprache, die du in der Schule lernst, da kann man nach 
einer Woche eigentlich auch noch nichts, versuch dich dann mal mit einem 
aus dem entsprechenden Land zu unterhalten, der wird dich nur schief 
angucken. Dein Compiler bzw. dein µC ist ja eigentlich nichts anderes 
als jemand, der eine "Fremdsprache" spricht. Ich kann dann leider manche 
Beiträge hier im Forum nicht verstehen, wo geschrieben wird "Ich bin 
Anfänger und ich will eine Funkuhr programmieren. Wie mach ich das?"

Ich denke jeder muss sich als erstes mit den einfachen Dingen (LED, 
Taster, 7-Segment usw.) beschäftigen. Da kommen auch schnell die Erfolge 
und man hat Spaß am Programmieren. Das ganze steigert man dann halt 
immer weiter. Es geht am Anfang ja auch nicht darum, dass man wirklich 
was für den Alltag brauchbares programmiert. Mein Devise war da 
eigentlich immer: "Vor dem Anwenden kommt das Lernen".

von Martin (Gast)


Lesenswert?

Wenn du wirklich ASM programmieren möchtest (was ich für nen Anfänger 
nicht so toll finde) hol dir den GCC (z.B. Winavr, kostenlos). Wenn du 
dann nicht weiter kommst, kannst du versuchen die Funktion in C zu 
schreiben, was normalerweise leichter fällt und dann einfach das 
.lst-File anschauen. Da steht dann jeweils eine Zeile C code und 
darunter der erzeugte ASM code. Da kann man sich dann ganz nett Ideen 
holen wenn man nicht weiter kommt.

von Niels H. (monarch35)


Lesenswert?

Martin wrote:

> dann nicht weiter kommst, kannst du versuchen die Funktion in C zu
> schreiben, was normalerweise leichter fällt und dann einfach das
> .lst-File anschauen. Da steht dann jeweils eine Zeile C code und
> darunter der erzeugte ASM code. Da kann man sich dann ganz nett Ideen
> holen wenn man nicht weiter kommt.

Nach dieser Methode sollte man aber wirklich erst dann verfahren, wenn 
man in der Befehlsreferenz des Controllers nichts passendes findet und 
wirklich nicht mehr weiter weiss.

Der Code der Funktionsbibliotheken der avrlibC sind sehr generell 
gehalten und enthalten oft "Sicherheitsmechanismen" die man oft gar 
nicht braucht. Auch sind sehr oft irgendwelche mathematischen 
Berechnungen sehr komplex gehalten (Gleitkomma) und oft es es möglich 
mit Hilfe von Tabellen oder maschinennahen Rechenoperationen (siehe 
beispielsweise div_t) sehr viel schneller und unkomplizierter arbeiten 
zu lassen.

Ich bin zwar generell kein Freund von Assemblerprogrammierungen, dennoch 
ist es richtig und wichtig, es zu beherrschen. Denn nur wer Assembler 
beherrscht, weiss wie man in C performanten und grössenoptimierten Code 
schreibt.

von Hannes L. (hannes)


Lesenswert?

Niels Hüsken wrote:

> ... Denn nur wer Assembler
> beherrscht, weiss wie man in C performanten und grössenoptimierten Code
> schreibt.

Danke...

...

von Niels H. (monarch35)


Lesenswert?

Hannes Lux wrote:

> Danke...

Wofür?

von Hannes L. (hannes)


Lesenswert?

Niels Hüsken wrote:
> Hannes Lux wrote:
>
>> Danke...
>
> Wofür?

Weil ich diese Aussage von Dir nicht erwartet hatte.

Hattest Du nicht bisher Jeden davon abbringen wollen, Assembler zu 
lernen? Oder habe ich da etwas verwechselt?

Bit- & Bytebruch,
Hannes

von Niels H. (monarch35)


Lesenswert?

Hannes Lux wrote:

> Hattest Du nicht bisher Jeden davon abbringen wollen, Assembler zu
> lernen? Oder habe ich da etwas verwechselt?

Nicht Grundsätzlich. Ich rate jedem Anfänger und "unbedarften" sich 
erstmal mit C oder Basic zu beschäftigen, solange, bis man ungefähr 
weiss, was die Hardware von einem will.

Ich finds grauhenhaft, wenn die Studis hier mit ihren ersten 
Gehversuchen mit LC-Displays ankommen, mit irgendwelchen vorgefertigten 
Assemblercode, den sie selber nicht verstehen, und der natürlich auch 
auf Anhieb nicht funktioniert.

Ich denke, in C oder Basic kann man sich als Anfänger deutlich schneller 
einlesen, als direkt mit dem grossen Assembler-Hinkelstein wie Obelix in 
die Haustür einzufallen.

von Hannes L. (hannes)


Lesenswert?

Niels Hüsken wrote:

> Ich denke, in C oder Basic kann man sich als Anfänger deutlich schneller
> einlesen, als direkt mit dem grossen Assembler-Hinkelstein wie Obelix in
> die Haustür einzufallen.

Nunja, das ist Ansichtsache. Ich hatte bei AVRs mit dem AT90S1200 
begonnen. Da war nichts mit C oder ASM, später bei Tiny12/15 auch nicht, 
ich vermisste es aber auch nicht. Und nun ist AVR-ASM für mich der Weg 
des geringsten Widerstandes. Ein Programm tut halt das, was man 
programmiert hat und nicht das, was ein Compiler optimiert hat. Und da 
der AVR auch nur Assembler (in Form von Maschinencode, der nur in ASM 
eindeutig notiert werden kann) kann, habe ich die wenigsten 
Missverständnisse, wenn ich in seiner Sprache mit ihm spreche... ;-)

Nein, ich bin kein Gegner von C, wer auf anderen Plattformen C bereits 
beherrscht, der soll auch auf dem AVR in C arbeiten. Aber der stellt 
auch nicht solche allgemeinen Fragen und weiß vermutlich auch, dass das 
Benutzen einer Hochsprache das Lesen des Datenblattes nicht erspart.

Nein, ich bin auch kein Gegner von BASIC, habe schon mit verschiedenen 
Dialekten gearbeitet und nutze es auf dem PC immer noch. Aber mit BASCOM 
kann ich mich nicht anfreunden.

...

von Niels H. (monarch35)


Lesenswert?

Hannes Lux wrote:

> des geringsten Widerstandes. Ein Programm tut halt das, was man
> programmiert hat und nicht das, was ein Compiler optimiert hat.

..was nicht immer ein Vorteil sein muss, denn manchmal kann der 
Optimierer recht hilfreich sein.

C wurde vorwiegend entwickelt, um den Assemblercode lesbarer zu machen. 
Und das ist den Herren Kerningham und Richie ausgesprochen gut gelungen.

> Nein, ich bin auch kein Gegner von BASIC, habe schon mit verschiedenen
> Dialekten gearbeitet und nutze es auf dem PC immer noch. Aber mit BASCOM
> kann ich mich nicht anfreunden.

Ich selber würde auch nie mehr einen Basiccompiler anfassen wollen, aber 
man darf die ganze Geschichte halt nicht immer nur aus der 
ICH-Perspektive sehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.