C/asm kerdes

Andras Tantos andras_tantos at yahoo.com
Thu Feb 5 16:42:15 CET 2004


Ilyesmire gondolsz?

------ coef.c ---------

int Coef[] = {
    0.7643 * 1024,
    0.2643 * 1024,
    0.7563 * 1024
};

Az en GCC-m (PC-n) ezt generalja belole (gcc -S coef.c):

------ coef.s ---------

 .file "coef.c"
.globl _Coef
 .data
 .align 4
_Coef:
 .long 782
 .long 270
 .long 774

Udv,
Tantos Andras
<http://andras.tantos.homedns.org>

----- Original Message ----- 
From: "VF" <vf at elte.hu>
To: "elektro" <elektro at tesla.hu>
Sent: Thursday, February 05, 2004 4:59 AM
Subject: C/asm kerdes


>
> Hi!
>
> Digitalis szurohoz kene a koefficiensek skalazasat egy kicsit
kenyelmesebbe
> tenni. A muvelet nagyon egyszeru: a float szamot meg kell szorozni egy
> konstanssal (tipikusan 2 hatvany), majd kerekiteni kell, es az egesz
szamot
> tarolni egy tablazatban mondjuk 24 biten az asm progi szamara.
> Sajnos az assembler operatorok csak integer szamokkal tudnak szamolni,
ezert
> ha megvaltoztatom a skalazast, mindig kezzel/szamologeppel ujra ki kell
> szamolnom. Azt talaltam ki, hogy a C forditot hasznalva beirom a
konstansokat
> es a skalafaktort, a C fordito aritmetikaja kiszamolja, azt irom be az
> asm progi tablazataba. (Tehat futtathato C progit nem kell irni,
felesleges,
> csak a C fordito aritmetikajat akarom hasznalni a konstansok
kiszamitasara)
> Hogy celszeru ezt csinalni?
> Esetleg az is jo lenne, hogy asm-bol meghivok egy C fuggvenyt, mely
> letarolja a RAM-ban a tablazatot. Kulonbozo okok miatt eddig is at kellett
> masolnom a flash-bol a RAM-ba, ez meg nem gond.
> De nem tudom hogy lehet meghivni asm-bol C progit. (Forditva megy)
> Termeszetesen startup kod nelkul lenne poen...
>
> -- 
> Valenta Ferenc <vf at elte.hu>   Visit me at http://ludens.elte.h u/~vf/
> Egyetlen atombomba tonkreteheti az egesz napodat!
>
>
>



More information about the Elektro mailing list