Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: joachim_neu am 23. January 2005, 02:42

Titel: Big-Small-Sonstwas-Endian
Beitrag von: joachim_neu am 23. January 2005, 02:42
hallo,

weiß jemand einen "trick", mit dem man dem rechner dieses ewige verändern von DBs, DWs und DDs mit "hilfe" von big- oder sonstwas endian abgewöhnen kann? ich mache gerade eine BitFont, und da nervt das schon sehr, wenn der mir meine buchstaben und Co. einfach verdreht und soweiter...

mfg

J!N
Titel: Big-Small-Sonstwas-Endian
Beitrag von: Jidder am 23. January 2005, 10:46
solange du nur db und nur byte-operationen verwendest sollte die endianness keine probleme machen. den rechner kannst du da nicht beeinflussen. sonst hilft da nur sich an die endianness anzupassen.
Titel: Big-Small-Sonstwas-Endian
Beitrag von: joachim_neu am 23. January 2005, 11:14
naja. ich schreibe halt mit db eine menge binäres zeug allá:

db 00000000b,00000000b,00000000b           ;<Leerzeichen>  
db 01000100b,01000100b,00000100b           ;!
db 01010101b,00000000b,00000000b           ;"
db 01010101b,11111111b,10101010b           ;#

und daraus macht mein freund der computer das:

0x44000000,0x00550444,0xaaff5500

und das passt mir irgendwie net so ganz, weil dadurch natürlich die font durcheinander kommt...
Titel: Big-Small-Sonstwas-Endian
Beitrag von: Roshl am 23. January 2005, 11:30
dir bleibt nur das umzudrehen
Titel: Big-Small-Sonstwas-Endian
Beitrag von: Jidder am 23. January 2005, 12:25
nein, der computer macht alles richtig. die bytes sind immer noch in der reihenfolge, wie du sie haben wolltest.

es ist nur deine ausgabe, auf den ersten blick wegen der endianness falsch ausschaut. weil x86 little endian ist, ist z.b. das vierte byte eines dwords das most significant byte. (z.b. bei 0x44000000 ist das 0x44 oder 0x010001000, was bei dir auch korrekterweise das vierte byte ist.)

gib dein font mal nicht als dwords sondern als bytes aus. dann sehen die auch "richtiger" aus.