Blockmov ab bspw. db300.dbx2.2 funktioniert nicht

Bensen83

Level-1
Beiträge
777
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ist es bei einem Blockmov nur möglich direkt von bytebegin zu kopieren, oder kann man auch irgendwie inmitten des Bytes anfanmgen? ich möchte gerne x bytes kopieren, aber erst ab adresse xy.2 geht das? ich bekopmme vom sfc20 immer nen lesefehler angezeigt.
 
Hallo, ist es bei einem Blockmov nur möglich direkt von bytebegin zu kopieren, oder kann man auch irgendwie inmitten des Bytes anfanmgen? ich möchte gerne x bytes kopieren, aber erst ab adresse xy.2 geht das? ich bekopmme vom sfc20 immer nen lesefehler angezeigt.


Das kopieren wird durch einen Anypointer gemacht und der ist als Type Byte definiert.
Das steht auch so in der Beschreibung des SFC, wenn es darum geht einen Pointer selbst zu bauen.
Der Fehler 8128 "Ausrichtungsfehler beim Lesen " sagt dies sehr genau.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok

Also geht es nur beim Blockmov nicht, aber generell der ANY-Zeiger ist dann wohl doch korrekt, oder?

sonst funktioniert es auch super, eben nur nicht, wenn ich nicht bei xy.0 starte.

Ps. was hat eigentlich der datentyp bit für einen sinn, wenn er beim blockmov eh durch 8 teilbar sein muss, dann kann ich doch auch gleich byte nehmen, oder?
 
Also geht es nur beim Blockmov nicht, aber generell der ANY-Zeiger ist dann wohl doch korrekt, oder?

sonst funktioniert es auch super, eben nur nicht, wenn ich nicht bei xy.0 starte.

Ps. was hat eigentlich der datentyp bit für einen sinn, wenn er beim blockmov eh durch 8 teilbar sein muss, dann kann ich doch auch gleich byte nehmen, oder?

Hellsehen kann ich nicht.
Doch es macht wenig Sinn mit Plockmove bits transferieren zu wollen.

Ja, der ANY Zeiger ist so richtig und wenn die nachfolgende Operation damit etwas anfangen kann, gut.

Du kannst, wenn du diese Funktion genauso brauchst, dir einen Transferbaustein selbst schreiben.


bike
 
Hallo Bensen,

..was hat eigentlich der datentyp bit für einen sinn, wenn er beim blockmov eh durch 8 teilbar sein muss, dann kann ich doch auch gleich byte nehmen, oder?
Der Datentyp Byte ist so etwas wie ein Standard. Wenn z.Bsp. ein Pointer symbolisch übergeben wird, macht der Compiler den Datentyp Byte daraus. An der Front kann es aber auch mal vorkommen, dass man bitweise kopieren muss. Das geht natürlich prinzipiell auch. Nur mit der SFC20 geht es nicht. Der Grund ist, dass jedes Bit einzeln kopiert werden muss, das kostet Performance und ist auch nur in Ausnahmefällen notwendig. Falls wirklich erforderlich, dann schreibe dir eine FC die jedes Bit in einer Schleife einzeln über AR1/AR2 kopiert.


Gruß, Onkel
 
Zurück
Oben