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 | ||
| ||
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: |