begin process at 2012 05 25 05:58:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

code C vers ASM


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

code C vers ASM

jeudi 5 mars 2009 à 18:02:06 | code C vers ASM

benjamin0000000

Bonjour,
je suis nouveau dans le monde de l'ASM, j'ai un code C que j'aimerais donc transrire en ASM...
Le 2eme code C est plus proche du langage ASM je pense.
Merci de me signaler mes erreurs ^^


int ValApp (int x, int* tabCoef, int N)
{
int i = 0;
int sum = 0;

sum = 1 + tabCoef[N-1] * x*x;

for (i=N-2; i>=0; i--)
{
sum = 1 + tabCoef[i] *x*x * sum;
}
return sum;
}


R0 R1 R2
int ValApp (int x, int* TabCoef, int N)
{
int i = 0; //R3
int sum = 0; //R4

i = N-1;
*ptrTabCoef = TabCoef[N-1];


sum = 1 + *ptrTabCoef * x*x;

while (i>0)
{
ptrTabCoef--;
sum = 1 + *ptrTabCoef *x*x * sum;
i--;
}
return sum;
}




R0:x R1:ptrTabCoef R2:N


 STMFD SP!, {R0-R8,LR}             sauvegarde des registres
XXX XXXXXX                           Mettre R7 à 1....
ADD R3,R2,R3,LSL#2                 R3=R2+4R3 // i=N-1
LDR R5,[R1]                            R5=*R1        //*ptrTabCoef = TabCoef[N-1];
MUL R6,R0,R0                 R6=R0*R0 // x*x
MUL R4,R6,R5                      R4=R5*R6 // Sum = *ptrTabCoef * x²
ADD R4,R4,R7                          R4=R4+R7 // Sum = Sum + 1
debut loop CMP R3,#0              // while(i>=0)
BLE fin loop
LDR R5,[R0,#-4]                      R0=R0-4 puis R5=*R0 // ptrTabCoef--
MUL R8,R6,R5                     R8=R6*R5 // temp = x² * ptrTabCoef
MUL R4,R4,R8                     R4=R4*R8 // Sum = Sum+temp ou Sum = Sum + x² * ptrTabCoef
ADD R4,R4,R7                        R4=R4+R7 // Sum = Sum + 1
SUB R3,R3,#1                         R3=R3 - 1 // i--
B
MOV R0,R4                    R0=R4 // R0 = Sum (car je dois renvoyer sur R0)
LDMFD SP!, {R0-R8,PC}








jeudi 5 mars 2009 à 19:08:31 | Re : code C vers ASM

ghuysmans99

Membre Club
Euh t'as qu'à compiler ton code C. Tu pourras le retrouver en l'entourant de NOP's (en ASM inline)
http://img404.imageshack.us/img404/7166/signaturegf4.gif
vendredi 6 mars 2009 à 14:20:55 | Re : code C vers ASM

benjamin0000000

Je code sous Keil, je peux compiler mon code C et obtenir le code ASM en faisant une manip' ?
J'ai pas compris ton NOP's
vendredi 6 mars 2009 à 22:35:23 | Re : code C vers ASM

ghuysmans99

Membre Club
Tu encadres ton code avec (devant et derrière) :
__asm("nop");
__asm("nop");

Après tu n'as plus qu'à recopier le code compilé.
http://img404.imageshack.us/img404/7166/signaturegf4.gif


Cette discussion est classée dans : int, sum, r0, r4, ptrtabcoef


Répondre à ce message

Sujets en rapport avec ce message

erreur compilation [ par greg4 ] je voudrai compiler--------------------------------------.model tiny.dataHelloMessage db 13,10,'Hello World !',13,10,'$'.codeorg 100hstart: mov ax,@d c/c++ et 19h [ par Xs ] salut !je travaille sous VC++ et j'aimerais utiliser une interuption processeur : 19hmon code actuel marche mais au lieu d'eteindre le PC, il le fait INT 5C [ par Ariane ] Je cherche toute info sur l'int 5C . NETBIOSLes infos trouvées sur le net etant insuffisantes.Merci d'avance. tout sans int [ par TRAX44 ] salut, je chercherai les adresse de ports de différente périphérique et autre tel que le clavier, la souris, l'écran et tout sa (dans le but de faire loader problème de code [ par TRAX44 ] salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche petit probleme de debutant [ par freekc ] j'essaie de faire un ptit prog que lorsque l'on rentre son nom prenom etc . Il y est un recapitulatif qui se mette en dessous ms lorsque que le recapi Help : afficher une chaine de caractère "mémorisée" [ par did2604 ] Bonsoir à tous. Mon problème peut vous paraître très simpliste, mais pour quelqu'un qui fait de la programmation assembleur depuis à peine 1 mois, tou tt sans int [ par TRAX44 ] Salut,je me lance d'un porjet fastidieux et j'aurais besoin de votre aide : Tout fair sans les interuptions. La seul solution que je connaisse pour l' Probleme de boot [ par DbD ] Bonjour,Alors je fais mon OS et j'ai des problème de boot a partir d'un disquette, sur certain pc ou quand le noyau depasse 40 secteurs ca boot plus Win32 et INT [ par Stormy ] Peut-on intégrer dans un code 32 bits traditionnel, une portion utilisant les registres 16 bits avec usage des interruptions DOS? Merci pour vos répon


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales