[elektro] C -- illegal pointer hiba
elight at gmail.hu
elight at gmail.hu
Fri Sep 27 10:19:08 CEST 2013
Bocs , a fáradság.. elütöttem.
a másodikat a 0x0FFC vel maszkova lett jó.
tehát az alsó két bitet 0-ra állítottam.
Ezt is cseréltem,
de mást is , az is lehet máshol is volt hiba.
A lényeg hogy hozzáadva 3-at ha kell
midenképen átlép a 4byte címhatáron..
és a utolsó két bitet törölve ráállítom pont a határra.
Üdv István
2013-09-27 10:08 keltezéssel, Móczik Gábor írta:
> 2013.09.27. 9:36 keltezéssel, elight at gmail.hu írta:
>> Még volt egy kis elértelmezésem
>> a 4 bytos szavak határra illesztésén.
>> ( string kiegészítés kellő számú 0-val,
>> hogy a karakterek séáma a lezáró
>> nullával együtt oszható legyen néggyel. )
>>
>> Mert a
>>
>> next_cmd_wr_address = ( next_cmd_wr_address + ( ( ( count + 3 ) >> 2 )
>> <<2 ) ) & 0x0FFF;
>>
>> és a
>>
>> next_cmd_wr_address = ( next_cmd_wr_address + ( count + 3 ) ) & 0x0FFC;
>>
>> valahogy lehet, talán nem egészen ugyanazt az eredményt adja.
> Hát nem, az utóbbinál az alsó két biten bármi lehet, az előbbinél csak
> nulla. Tehát igazításra az utóbbi szerintem nem lehet jó, hacsak nem
> rosszul másoltad ide, és a kódban végülis más van.
>
> Az előbbinek kellene jónak lennie, de a shift operátorral szokott lenni
> szívás, többek között a sign extension, typecast és egyéb vicces dolgok
> miatt.
>
> Szerintem írj simán *4, és /4 utasításokat. Egy valamire való fordító
> ismeri ezeket és automatikusan bitszintű shift utasítást fog fordítani,
> de akkor olyat, amivel matematikailag stimmel majd az eredmény.
>
> Elvileg az előbbi a jó, mert a második utasítás nem igazít 32 bitre...
>
> Arra jöttem rá, hogy ma már elég fejlettek a fordítók, ha nem
> komplikált, egyértelmű, szokványos kódot írsz, akkor a fordító felismeri
> ezeket a programozási mintákat, és optimális megoldást fordít hozzá. Ha
> nagyon nekiáll az ember bitfaragni, akkor nem ismeri fel mit akarsz,
> lefordítja a bitfaragást úgy ahogy odaírtad, ami vagy jó vagy nem, vagy
> optimális vagy nem, attól függően, hogy elég jól ismered-e a C, az adott
> fordító és az célarchitektúra működésést.
>
> Szóval írj egyszerű megoldásokat, utána nézd meg az asm listet, ha nem
> találta ki, akkor kezdd el csak kézzel faragni.
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list