Word, Dword apod
Moderátor: Moderátoři
Word, Dword apod
Zdravím, jaká je definice word, dword a podobně?
Kdyz to zadas do google a kliknes na prvni odkaz, dozvis se vse potrebne
https://www.google.com/search?q=LWord+dword+word
https://www.google.com/search?q=LWord+dword+word
-
- Příspěvky: 2551
- Registrován: 13 zář 2005, 02:00
U PLC (ale defacto i u jiných procesorů, třeba Atmel nebo Microchip) se vždy pracuje s nějakým procesorem, který má nějakou architekturu - je nějak vyrobený. Registry může mít 8bitové (tj. 1 byte), nebo taky klidně 1 bit nebo taky 16 bitů nebo 32 bitů. To je na výrobci, co uzná za vhodné (= nejlepší pro uživatele). Tobě jako uživateli/programátorovi nezbývá nic jiného, než se s tím smířit. Tohle informaci samozřejmě výrobce zveřejňuje.
Jiná věc je, jak se k této problematice postaví výrobce SW, kterým se procesory/PLC programují. Může otrocky využívat architekturu od výrobce nebo ti může nabídnout něco víc - tzn. že třeba výsledek dělení dvou reálných čísel zpracuje tak, že je to 16 bitů. Nebo může být výsledek přesnější, a to třeba 32 bitů. Ale výrobce SW pak musí použít třeba čtyři 8bitové registry k tomu, aby poskytl 32bitový výsledek. Typický příklad takovéto úpravy je to, že některé procesory mají v registru typu doubleword prohozené vždy dva a dva byty. Ale některé mohou mít prohozené i ty dvoubajty mezi sebou. Ale to uživatele nemusí moc zajímat.
Dneska, když se už nešetří každý bit paměti, je možné pro jednoduché aplikace používat klidně 4 byty pro příznak ano/ne - ale je to vlastně plýtvání pamětí, protože 32 bitů bude mít pouze hodnotu 0 nebo 1. Dříve, kdy byly paměti procesorů malé, bylo nutné šetřit doslova každý bit.
Takže asi tak.
PF
Ještě dodám, že např. word, tj. 8 bitů, může mít hodnotu 0..255. To je word bez znaménka (a může se jmenovat třeba unsigned word). Ale taky může existovat word se znaménkem, který může nabývat hodnot -128..127 (a může se jmenovat třeba signed word). Ale pořád je to 8 bitů.
Jiná věc je, jak se k této problematice postaví výrobce SW, kterým se procesory/PLC programují. Může otrocky využívat architekturu od výrobce nebo ti může nabídnout něco víc - tzn. že třeba výsledek dělení dvou reálných čísel zpracuje tak, že je to 16 bitů. Nebo může být výsledek přesnější, a to třeba 32 bitů. Ale výrobce SW pak musí použít třeba čtyři 8bitové registry k tomu, aby poskytl 32bitový výsledek. Typický příklad takovéto úpravy je to, že některé procesory mají v registru typu doubleword prohozené vždy dva a dva byty. Ale některé mohou mít prohozené i ty dvoubajty mezi sebou. Ale to uživatele nemusí moc zajímat.
Dneska, když se už nešetří každý bit paměti, je možné pro jednoduché aplikace používat klidně 4 byty pro příznak ano/ne - ale je to vlastně plýtvání pamětí, protože 32 bitů bude mít pouze hodnotu 0 nebo 1. Dříve, kdy byly paměti procesorů malé, bylo nutné šetřit doslova každý bit.
Takže asi tak.
PF
Ještě dodám, že např. word, tj. 8 bitů, může mít hodnotu 0..255. To je word bez znaménka (a může se jmenovat třeba unsigned word). Ale taky může existovat word se znaménkem, který může nabývat hodnot -128..127 (a může se jmenovat třeba signed word). Ale pořád je to 8 bitů.