Adressverwaltung CPU

Gast #6303393
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
Angehängte Dateien:
Gast
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?
(Firma: Schweigstill IT) Persönliche Seite
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.
Gast
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
Gast
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.
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.