Forum: Mikrocontroller und Digitale Elektronik Adressverwaltung CPU


von SPS (Gast)


Angehängte Dateien:

Lesenswert?

Was ich weiß:

Bool/ Byte können bei ungradzahliger Adresse beginnen
Real, int, DInt immer gradzahlige Adressse

Benötigter Speicherplatz:

Bool 0.1 Byte
Byte  1.0 byte
real 4.0
Int 2.0 Byte
DINT 4.0 Byte
usw...

dazu die Anfängerfrage (Anhang):
warum wird bei 5 nicht mit adresse 1.1 weitergrechnet?
...bei 7 mit 4.1?
Warum bei 8 mit 8.0? der sprung von 7 auf 8 hätte ja mindesten 4 Byte 
groß sein müssen. Die Aressvergabe danach verstehe ich auch nicht.

Vielen Dank schoneinmal

von (prx) A. K. (prx)


Lesenswert?

SPS schrieb:
> Bool 0.1 Byte

Dein Sinn für Nachkommastellen in Ehren, aber wenn du das nicht im 
Oktalsystem angegeben hast, dann meinst du wohl die eher seltene 
Maschine mit 10-Bit Bytes.

von TR.0LL (Gast)


Lesenswert?

SPS schrieb:
> Bool 0.1 Byte

Bool ist eher ein 1/8 Byte groß.

von wer (Gast)


Lesenswert?

SPS schrieb:
> Was ich weiß:
>
> Bool/ Byte können bei ungradzahliger Adresse beginnen
> Real, int, DInt immer gradzahlige Adressse

Das schließt du woraus? Aus der Tabelle mit teilweise nur 1 einzigen 
Beispiel?

von Wolfgang (Gast)


Lesenswert?

SPS schrieb:
> warum wird bei 5 nicht mit adresse 1.1 weitergrechnet?

Damit:

SPS schrieb:
> Real, int, DInt immer gradzahlige Adressse

von Wolfgang (Gast)


Lesenswert?

A. K. schrieb:
> Dein Sinn für Nachkommastellen in Ehren

Das wird wohl kaum eine Nachkommastelle sein.
Der Punkt ist das Trennzeichen zwischen (Byte)-Adresse und Bitnummer.

p.s.
SPS schrieb:
> warum wird bei 5 nicht mit adresse 1.1 weitergrechnet?

Weil 4 ein Byte ist.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

A. K. schrieb:
> Dein Sinn für Nachkommastellen in Ehren, aber wenn du das nicht im
> Oktalsystem angegeben hast, dann meinst du wohl die eher seltene
> Maschine mit 10-Bit Bytes.

Nein, es handelt sich ganz offenbar um eine Siemens S7-314C-2 PN/DP, die 
mit einer aktiken STEP7-Version (V5.x o.ä.) projektiert wird. Die 
Schreibweise mit per Punkt abgetrennten Bitpositionen ist ausgesprochen 
gebräuchlich im SPS-Bereich. Diese ist sogar in der Norm IEC/EN 61131-3 
enthalten.

von (prx) A. K. (prx)


Lesenswert?

Andreas S. schrieb:
> Diese ist sogar in der Norm IEC/EN 61131-3 enthalten.

Also doch Oktal. Hinter dem Punkt.

von SPS (Gast)


Lesenswert?

A. K. schrieb:
> SPS schrieb:
>> Bool 0.1 Byte
>
> Dein Sinn für Nachkommastellen in Ehren, aber wenn du das nicht im
> Oktalsystem angegeben hast, dann meinst du wohl die eher seltene
> Maschine mit 10-Bit Bytes.

ne meine ich nicht, war nicht überlegt formuliert

von SPS (Gast)


Lesenswert?

Wolfgang schrieb:
> Der Punkt ist das Trennzeichen zwischen (Byte)-Adresse und Bitnummer.

genau das

von SPS (Gast)


Lesenswert?

Wolfgang schrieb:
> SPS schrieb:
>> warum wird bei 5 nicht mit adresse 1.1 weitergrechnet?
>
> Damit:
>
> SPS schrieb:
>> Real, int, DInt immer gradzahlige Adressse

das verstehe ich. Aber warum geht dann nicht bei 7 4.1? das wäre doch 
gradzahlig.

von Wolfgang (Gast)


Lesenswert?

SPS schrieb:
> das verstehe ich. Aber warum geht dann nicht bei 7 4.1? das wäre doch
> gradzahlig.

Weil 6 mit INT insgesamt 16 Bit benötigt und damit den Bereich [4.0 .. 
5.7] komplett belegt

von Axel S. (a-za-z0-9)


Lesenswert?

SPS schrieb:
> Was ich weiß:
>
> Bool/ Byte können bei ungradzahliger Adresse beginnen
> Real, int, DInt immer gradzahlige Adressse

Das weißt du falsch. Tip: verschiedene CPU handhaben das 
unterschiedlich. Lies mal 
https://en.wikipedia.org/wiki/Data_structure_alignment

> Bool 0.1 Byte

Das ist falsch.

> Byte  1.0 byte

Das ist trivial (wenn "Byte" und "byte" das gleiche meinen)

> real 4.0
> Int 2.0 Byte

Das ist manchmal auch falsch. Abgesehen davon haben verschiedene 
Programmiersprachen nicht nur unterschiedliche Ansichten über die Länge 
eines INT, sondern möglicherweise sogar über die Länge eines Bytes. Ein 
Byte enthält zwar oft, aber eben nicht immer 8 Bits.

https://en.wikipedia.org/wiki/Byte

von SPS (Gast)


Lesenswert?

Wolfgang schrieb:
> Weil 6 mit INT insgesamt 16 Bit benötigt und damit den Bereich [4.0 ..
> 5.7] komplett belegt

danke dafür. Meine Denke war komplett verdreht, das klärt es.

von SPS (Gast)


Lesenswert?

Axel S. schrieb:
> SPS schrieb:
>> Was ich weiß:
>>
>> Bool/ Byte können bei ungradzahliger Adresse beginnen
>> Real, int, DInt immer gradzahlige Adressse
>
> Das weißt du falsch. Tip: verschiedene CPU handhaben das
> unterschiedlich. Lies mal
> https://en.wikipedia.org/wiki/Data_structure_alignment
>
>> Bool 0.1 Byte
>
> Das ist falsch.

>> real 4.0
>> Int 2.0 Byte
>
> Das ist manchmal auch falsch. Abgesehen davon haben verschiedene
> Programmiersprachen nicht nur unterschiedliche Ansichten über die Länge
> eines INT, sondern möglicherweise s

alles fake news in diesem Zusammenhang

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.