Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Ausgabe auf das LCD in Assembler Kategorie: Progr. Assembler, TaskingTools, OS (von AndrĂ© H. - 28.07.2004 13:22)
Als Antwort auf Re: Ausgabe auf das LCD in Assembler von Cris - 27.07.2004 9:32
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
Hallo Cris & Thomas,

> Sorry, es ist ein kleiner Fehler unterlaufen. Ich habe als Adresse 1000H angegeben. Das Segment 3
> beginnt jedoch bei 30000H.

Das Problem ist, daĂ? der Assembler der Tasking Tools ein Speichern von Adressen
von Konstantenarrays nur in Segment 0 akzeptiert, da hier nur Zahlen im Bereich Integer zulässig sind.
Steht der Text z.B. am Anfang von Segment3, dann versucht der Assembler mit
MOV  R12,#text R12 die Zahl 0x30000 zuzuweisen, warum auch immer.


Da aber der Auszugebene String sowieso in Segment 8 stehen muĂ?, da die Systemroutine
die Daten in Segment 8 erwartet, muĂ? dieser zuerst dorthin kopiert werden.
z.B. so:

        MOV     R3, #08000h ; RAM ab Adresse 0x8000 nutzen
        MOV     R12,#0
_1:
        CMPD1   R12,#4  ;String-Länge
        JMPR    cc_EQ, _2      
        MOVB    RL4, [R12+#text]
        MOVB    [R3],RL4
        ADD     R3,#1
        JMPR    cc_EQ, _1
_2:
...
...
text    db      'test'


> Das Compilieren sollte jedoch auch klappen wenn man bei Section Code 0000H angibt und dann in
> Segment 3 lädt. Ich habe momentan noch keine brauchbare Idee, wie man das elegant im Quelltext
> angibt.

Das ginge. Jedoch muĂ? man hier natĂĽrlich den Header in der Hex-Datei austauschen.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: