C/asm kerdes
Andras Tantos
andras_tantos at yahoo.com
Fri Feb 6 17:41:15 CET 2004
Hi!
> > Amit meg tehetsz, hogy irsz egy mini programot, ami atalakitja a
generalt
> > ASM forrast, atkodolja az adatokat 24-bitre es kiir egy masik ASM
forrast.
> > Bar ilyen erovel megcsinalhatod az egesz szamitast benne, es nem kell a
C
> > konstans-kiertekeleset erre felhasznalni.
>
> Igen, Gabor is ezt javasolta. Ez kevesbe tetszik, es nincs is C a gepemen,
> csak AVR-hez :) Na jo pascal van, abban is meg lehetne csinalni.
> Nem olyan nagy gond a 24/32bit, csak nehany bajt megy pocsekba, a
> lassulas is elenyeszo.
Hulye vagyok, persze, hogy meg lehet csinalni C-ben:
typedef struct {
unsigned char Low;
unsigned char Mid;
signed char High;
} int24;
#define INIT_INT24(aValue) { \
((unsigned long )(aValue)) & 0xff, \
(((unsigned long )(aValue)) >> 8) & 0xff, \
(((signed long)(aValue)) >> 16) & 0xff }
int24 Data[] = {
INIT_INT24(0.5456 * 1024),
INIT_INT24(0.798 * 1024),
INIT_INT24(0.125 * 1024),
INIT_INT24(0.4378 * 1024),
};
Ebbol ez lesz az en GCC-mmel:
.file "int24.c"
.globl _Data
.data
_Data:
.byte 46
.byte 2
.byte 0
.byte 49
.byte 3
.byte 0
.byte -128
.byte 0
.byte 0
.byte -64
.byte 1
.byte 0
Azert vigyazz a data-packing meg alignment meg hasonlo dolgokra, mert lehet
am, hogy nem pont ugy fogja a fordito kiosztani a strukturat meg a
strukturatombot, ahogy te szeretned. Ellenorizd le hasznalat elott!
> > Processzor/fordito fuggo. Megosztod a reszleteket?
>
> En is csak ennyit tudok. Megnezegettem hogy mit forditott a C-bol, es
> probaltam rajonni a lenyegre. Meg alaposabban megvizsgalni nem volt sem
> idom, sem kedvem... Egyebkent is hulyeseg asm-bol hivni a C-t, de most
> pont jol jott volna. Mar megoldottam mashogy, ahogy javasoltad.
Ezt azt hiszem felre ertetted. A kerdes: milyen proci, milyen fordito. Csak
ezek ismereteben lehet a kerdesedre valaszolni. (Ha jol olvastam a sorok
kozott, akkor AVR a proci. Ehhez abszolut nem ertek, de talan majd valaki
mas...)
Udv,
Tantos Andras
<http://andras.tantos.homedns.org>
More information about the Elektro
mailing list