PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Assembler Code inside BASCOM??? Sinnvoll, Ja Nein?



PCF8574P
03.11.2008, 13:40
Hallo,

Ich will mein neues Projekt in Assembler programmieren.
Allerdings finde ich BASCOM bequemer und brauche nicht noch irgendwelche andere Programme.

Nun bin ich vor langer Zeit das man in BASCOM auch Assembler Code schreiben kann. Die Frage ist nun ob es sinnvoll ist, den Code zweigeteilt zu schreiben.

Also ASM und dann die Befehle die ich nich weiss oder bequemer mit Bascom sind in BASCOM.
Die Ganzen µC einstllungen normal in Bascom.

MFG

zerush
03.11.2008, 13:57
Also ich arbeite nicht mit Bascom, aber gerade Bascom fuscht ja ziemlich viel dazwischen, so dass wohl alle Vorteile von Assembler wieder flöten gehen.

Also ich empfehle daher, es gleich richtig zu machen!
Ist ja auch nicht viel Aufwand bei der Installation..
Du brauchst nur WinAVR und das AVRStudio, eclipse oder irgendein Programmers Notepad (oder nur einen Texteditor :-) )

Gruß,
Thomas

PCF8574P
03.11.2008, 14:03
Ok,

dass war nämlich die überlegeung weil ich gerade noch ASm lerne

Wie viel pfuscht Bascom dazwischen?

MFG

MeckPommER
03.11.2008, 14:04
Ich finde es sehr angenehm, besonders zeitkritische Dinge unter Bascom in Assembler machen zu können. Einiges geht in Assembler auch einfach schöner und kompakter zu machen als in Bascom, da man mit den Registern direkt umgehen kann.
Andererseits würde ich mir lieber die Finger abschneiden, als z.B. den ganzen mathematischen Kram wie sin, acos, ... in Assembler machen zu wollen.

Programmiersprachen sind Werkzeuge wie Besteck. Manchmal sind Löffel besser, manchmal Gabeln ... und einige Gerichte erfordern den abwechselnden Einsatz beider Futterhilfen. :-)

Wichtig ist nur, das man aufpasst, welche Registern man für seine Assembler-Routinen benutzt, damit man Bascom nicht in die Quere kommt.
Nutzt man z.B. Register 20-27 (ander habe ich grade nicht im Kopf) gibts keine Probleme. Die Software meines Bots (mein kleiner 10000+ Zeiler ^^) ist vielleicht 40% Assembler und 60% Bascom und diese vertragen sich problemlos miteinander.

Gruß MeckPommER

thewulf00
03.11.2008, 14:05
Bestimmte Programmteile in Assembler zu schreiben, macht situationsabhängig schon Sinn. Ein Kumpel von mir hat bspw. für die RFM-Funkmodule die SPI-Schnittstelle in ASM geschrieben und eingebunden, da es mit der BASCOM-Software-SPI-Schnittstelle nicht funktionierte.
Ebenso hat er es mit I2C gemacht. Funktioniert einwandfrei.

Der Sinn ist einfach, für das kurze Stück im reinen Assembler zu sein, mit all seinen Vorteilen.

Nicht umsonst wird bei großen und/oder sehr nützlichen Softwareprojekten mit einer Mischform aus Programmiersprachen gearbeitet. Bspw. der Linuxkernel. Je nach Einsatzort hat eben jede Sprache Vor- und Nachteile.

MeckPommER
03.11.2008, 14:15
... ich arbeite nicht mit Bascom, aber gerade Bascom fuscht ja ziemlich viel dazwischen, so dass wohl alle Vorteile von Assembler wieder flöten gehen ...

Wie kommst du darauf? Wo pfuscht Bascom zwischen?

Nicht böse sein, aber es erinnert mich ein wenig an User, die kein Vista nutzen und kennen, sich aber täglich in Foren gegenseitig erzählen, wie schlecht es doch sei ;-)

PCF8574P
03.11.2008, 14:17
Ok. Dann bin ich ja schonmal begeistert dass ich nicht komplett auf ASM umtsteigen muss.

Zeitkritische Sachen habe ich fast garnicht. 4 ADC abfragen, verarbeiten und 2 mal PWM ausgeben.
Damit wird wohl der Mega8 nicht überfordert sein.

@thewulf00:
Richtig. So habe ich das gemeint.

@MeckPommER:
R4, R5, R6, R8, R9, R28 und R29 darf ich nicht verwenden, oder?
Diese nutzt ja bereits Bascom

MFG

thewulf00
03.11.2008, 14:29
Das meiste könnte man sicher auch in BASCOM lösen, aber in ASM gehts evtl.:
- schneller
- einfacher
- lesbarer

Oder eben auch nicht ;)

zerush
03.11.2008, 14:44
... ich arbeite nicht mit Bascom, aber gerade Bascom fuscht ja ziemlich viel dazwischen, so dass wohl alle Vorteile von Assembler wieder flöten gehen ...

Wie kommst du darauf? Wo pfuscht Bascom zwischen?

Nicht böse sein, aber es erinnert mich ein wenig an User, die kein Vista nutzen und kennen, sich aber täglich in Foren gegenseitig erzählen, wie schlecht es doch sei ;-)

Hmm also vielleicht habe ich mich da ungünstig ausgedrückt, also in den Teil, den man in Assembler schreibt pfuscht Bascom wohl nicht rein (denke und hoffe ich zumindest). Aber ich habe das ganze jetzt so verstanden, als würde er nur in Assembler schreiben wollen (um genau zu wissen was passiert), aber die Bascom Anweisungen zwischendurch / am Anfang die können da teilweise schon umfangreicheren Code erzeugen, wo man eben nicht mehr genau sieht, was auf der Hardware eigentlich passiert!

Zu Vista: Ich nutze Vista und bin zufrieden damit! Und die Meinung über die anderen User teile ich mit dir :-)

EDIT: Also wenn man in Bascom programmieren möchte und nur einige kritische Teile in ASM machen will, dann ist das durchaus sinnvoll, wie ja schon gesagt wurde. Das macht man ja in C auch teilweise!

PicNick
03.11.2008, 15:49
Ich verwende gerne Bascom und Assembler Mischungen. Ich will das aber keinem einreden.
Einige Infos hab ich da zusammengetragen.

https://www.roboternetz.de/wissen/index.php/Assembler_Einf%C3%BChrung_f%C3%BCr_Bascom-User

Vielleicht interessanter für dich, da du ja kein Anfänger bist
https://www.roboternetz.de/wissen/index.php/Assembler_Einf%C3%BChrung_f%C3%BCr_Bascom-User#Datenaustausch_mit_BasCom

MeckPommER
03.11.2008, 18:25
@PicNick

Deine Infos waren für mich ein SEHR hilfreicher Wiedereinstieg in die Assemblerprogrammierung, nachdem meine vorherigen Erfahrungen noch aus 6502 und 80286-Zeiten waren und somit arg eingerostet ;-)

Dankende Grüße MeckPommER

PicNick
03.11.2008, 19:08
freut mich doch, wenn sich wieder einer in die stygischen Tiefen gestürzt hat :mrgreen:

MeckPommER
03.11.2008, 19:18
Gibt halt einige Begriffe, die von Vornherein negativ besetzt sind. Dazu gehört auch Assembler.

Assembler ist schwer, niemand normales begreift Assembler. Das ist nur etwas für Computergenies ...

Wenn man sich es aber genauer anschaut, ist es nichts Anderes als Ernies und Berts "Was passiert dann"-Maschine :)

PicNick
03.11.2008, 19:29
....negativ besetzt sind. Dazu gehört auch Assembler....
*schmoll*
find ich garnicht. Jede Compiler bis zu Visual-Studio 2008 ist ja nur eine aufgemotze Schreibhilfe für assemblercode *duck*

Sieht man am besten, wenn es das Programm zerreisst. Was siehst du dann ? Maschinencode und ausgefranste register bis zum Erbrechen.

thewulf00
04.11.2008, 22:26
Das was MeckPommEr sagt, ist schon richtig.
Auch hört man oft, Assembler sei nur-schreibe-Code, d.h. man kann damit zwar programmieren, aber das geschriebene Programm kann man nicht mehr verstehen. Ist ja auch (größtenteils) nachvollziehbar.

stefan_Z
06.11.2008, 00:38
Wo wir hier schonmal beim Assembler und Bascom sind:
Gibts eine Möglichkeit, Bascom in ASM zu übersetzen? der Compiler macht ja grundsätzlich auch nix anderes.
Ich hatte gelesen, dass man das generierte .obj File in AVRStudio nutzen kann, aber der macht mir dann nur den Bascom Quellcode auf.

thewulf00
06.11.2008, 09:47
Es gibt wohl eine Möglichkeit, BASCOM zu sagen, dass Du den ASM-Code haben willst. Ansonsten könntest Du einfach das HEX-File disassemblieren und dann öffnen.

PicNick
06.11.2008, 11:12
...Möglichkeit, BASCOM zu sagen, dass Du den ASM-Code haben willst...

sagst du mir, welche ?

thewulf00
06.11.2008, 11:18
Das weiß ich doch nicht. :-)
Das Wörtchen "wohl" deutet an, dass ich davon gehört hatte.

Ich benutze BASCOM nicht...

PicNick
06.11.2008, 11:34
Ah, so, ich hatte befürchtet, ich hab was versäumt.

thewulf00
06.11.2008, 13:20
Also gibt es keine?

PicNick
06.11.2008, 13:50
Hierorts nix bekannt. Es gibt eine BasicVariante f. AVR, von der hat Pebisoft immer geschwärmt (mir fällt der Name nicht ein), die erzeugt erst einem Assembler und dann erst den Code, aber Bascom itself läßt sich nicht freiwillig in die Karten gucken.

chr-mt
06.11.2008, 14:07
mir fällt der Name nicht ein

FastAvr
http://www.fastavr.com/
Die letzte Version scheint vom Mai 2006 zu sein.
Ob das noch weiterentwickelt wird ?

Gruß
Christopher

PicNick
06.11.2008, 14:29
Ah, danke.
2006 ? klingt nicht so gut.

kost anscheinend 99 $ , also auch nicht billiger als Bascom

thewulf00
07.11.2008, 09:06
Also ich hab nochmal nachgefragt. Bei BASCOM einfach das HEXfile erzeugen lassen und dieses dann im AVRStudio öffnen. Dabei wird es autom. disassembliert. Damit hat man den ASM-Code seines BASCOM-Projektes.

PicNick
07.11.2008, 10:51
Logo, das kannst du bei jeder Hexfile.
Aber tatsächlich lesen können das nur abgebrühte hardliner.
Für frischoperierte und rekonvaleszente ist das abzuraten.

PCF8574P
07.11.2008, 11:08
wie lasse ich denn Bascom eine Hex datei erzeugen?

PicNick
07.11.2008, 11:24
Option --> compiler --> Output

Häkchen bei "HEX"

sechsrad
08.11.2008, 17:04
Gibt es schon in der Version 4.5.2

Ist für den Privatanwender, der keine Lust hat sich den ASM-Code noch einmal anzusehen und zu verbessern nichts.

Wer aber eine grosse Interesse hat an reinem ASM-Code ,der auch mit dem AVR-Studio-Assembler umgesetzt werden kann, für den ist es was.

Diese Firma bietet es an :

http://www.ewetel.net/~bamberg.monsees/homesywitecd.htm