Adressverwaltung CPU

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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.