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

Re: Variablen in Assembler Kategorie: Progr. Assembler, TaskingTools, OS (von Cris, http://www.crisullmann.de - 15.07.2004 9:48)
Als Antwort auf Variablen in Assembler von Thomas - 14.07.2004 22:00
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, eigenes Board, OSOPT_V2
Hallo Thomas,

ich habe mir die Funktion zum Schreiebn von Text angeschaut. Wenn ich alles richtig verstehe, bekommt
diese Prozedur die Adresse des anzuzeigenden Textes in R12 übergeben. Diese Adresse bezeiht sich
jedoch immer auf das Speichersegment 0. Du hast also keine Möglichkeit ein anderes Segment aus-
zuwählen. Somit kannst Du nur Texte anzeigen, die im Segment 0 (Betriebssystem) hinterlegt sind.

Vereinbarung von Variablen in ASM:

Variablen werden über ihre Speicheradresse angesprochen. So eine Adresse kannst Du wie folgt
festlegen:
PS2_Buffer EQU 0002H ;Datenspeicher PS2

Du siehst schon, da� es sich um eine 16 Bit-Adresse handelt. Längere Adressen kann der Prozessor
der CC2 nur über das zugehörige Speichersegment verwalten. Du kannst für Deine Anwendungen
zum Lesen und Schreiben nur das RAM-Segment (Segment 8) benutzen. Dort musst Du Dir eine freie
Stelle suchen.

Die Meldung
> E 356: expression result out of range for use in an instruction
sagt Dir, da� das Ergebnis Deines Ausdruckes nicht in ein 16Bit-Register passt. Du hast nämlich
die Segmentadresse einfach vor die Speicheradresse gesetzt. Der richtige Zugriff würde lauten:

MOV R12,#00000H                 ; 16bit-Adresse setzen
EXTS #8,#1                             ;der nächste Befehl bezieht sich auf Segment 8
MOV R1,[R12]                        ; lade R1 mit dem Inhalt von 80000H

Die Aufteilung und Nutzung der Speichersegmente ist im Handbuch der CC2 beschrieben.

Grü�e Cris


Meine Seite: http://www.crisullmann.de


    Antwort schreiben


Antworten:

Re: Variablen in Assembler (von Thomas - 15.07.2004 20:19)
    Re: Variablen in Assembler (von Cris - 16.07.2004 9:04)