Quel le genre de programmation où l'assembleur sert vraiment?
Fildomen
Messages postés805Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention30 octobre 2010
-
15 juil. 2004 à 21:10
ouldm8
Messages postés13Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention 6 janvier 2006
-
5 janv. 2006 à 20:59
salut
est-ce-que l'asm peut tenir à côté des langages évolués? et quel sont les domaines où il est le meilleur? il faut compter la longeur du temps de la création de son projet. peut-il créer des jeux vidéo (minimum 1 an, bah on sait que tout les langages peuvent le créer mais reste le plus recommandé)?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 juil. 2004 à 21:43
Il est inconcevable de créer aujourd'hui un jeu vidéo en assembleur, ca prendrait trop longtemps, et ca n'est pas vraiment utile. En fait, seules les parties du programme qui doit être très efficaces sont écrites en assembleur, par exemple pour les calculs.
C'est aussi le genre d'arguments qui me donne des états d'âmes à apprendre l'asm, je ne suis pas persuadé de l'utilité finale.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 juil. 2004 à 23:48
Allez au boulot et cesse de te poser de pareilles questions. Tu as deja vu des connaissances inutiles ? pas moi.
L'ASM 32 bits s'apprend tout seul, pas de type de variable, de cast ni aucun truc verbeux, juste une serie de mnemonics a se rappeler et comme ils sont evidents tu les sais en 1 mois maxi en pratiquant 1 heure par jour.
Regarde toutes les classe BigInt qu'on trouve ici ou la, pas une n'est viable tant qu'elle sera en C++, fais une boucle de division et le resultat 1/4 h apres. Simple exemple ou asm est indispensable et on en trouvera tant d'autres.
Fildomen
Messages postés805Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention30 octobre 2010 16 juil. 2004 à 01:57
je fais +qu'une heure par jour, et je suis pas le type qui a la cervelle bloqué, je commencais la programmation vb à 8 , maintenant j'ai eu marre de ce langage qui est le plus faible, mais l'asm m'a fait subir des dégats psychiques "Eh oui" , Le .IF ca marche pas, mais il reste quoi de plus facile que l'universel if (je parle pour masm, le cmp pour les autre, je me casse pas la tete). et qui me fait la vertige, c'est que ce language ne fait pas différence entre dim a as integer et dim a as string, il prends tout en string, rassembler des nombres(ascii), je pense que je vais laisser ces trucs à l'université, et je passe à des trucs de web (asp).j'ai deux question
-Quel est le logiciel pour programmer en asp? est-ce-fourni avec le visual studio??
-On étudie l'asm en univérsité? (branche d'un programmeur)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 juil. 2004 à 02:14
'prends tout en string', ben visiblement t'as loupe une etape.
Aucune notion de string en ASM ni C, langages bas niveaux ne connaissent que des adresses memoire et des registres, le reste est de la philo.
Tres bien le script et asp, clic clic dans dreamweaver et s'ecrit tout seul. Bien sur la paie ne sera pas la meme, mais on ne peut pas pretendre au clic et a l'argent du code.
ciao...
BruNews, Admin CS, MVP Visual C++
Vous n’avez pas trouvé la réponse que vous recherchez ?
Fildomen
Messages postés805Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention30 octobre 2010 16 juil. 2004 à 04:15
Ah, merci mon brunews, tu ma tout expliqué en 1 seul ligne, "langages bas niveaux ne connaissent que des adresses memoire et des registres", alors je constate que si j'ai un texte "2223" et je veux le convertir en un nombre, je doit mettre tout dans une variable 16bit qui contient 2223, et c'est de mes propres calcules, l'asm ne sait rien "RIEN" que placer des valeurs et c'est à nous de tout gerer ??? si c'est vraiment comme ca, je suis soulagé, moi qui cherchait des commandes pour changer une variable de string à integer.pfffffff, quel idiot. mais attends, ce que je viens de dire est vrai ???
ouldm8
Messages postés13Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention 6 janvier 2006 5 janv. 2006 à 14:45
Bonjour tout le monde, je voudrais savoir si quelqu'un pourras m'aider. Je suis vraiment debutant en assembleur : jamais fait du tout, un peu a l'ecole...
On a des tp la dessus. On travaille sur le lengage Motorolla 68000.
Je voudrais du help....
ouldm8
Messages postés13Date d'inscriptionlundi 6 décembre 2004StatutMembreDernière intervention 6 janvier 2006 5 janv. 2006 à 14:53
voila, je vous envoie le code en C ainsi que ce que j'ai fait pour passer en asm.
Veuillez me corriger svp....
#include <stdio.h>
#include <string.h>
void traitement(char* chaine1, char* chaine2, int type, int* length)
{
XDEF _traitement
_traitement:
MOVE.L (4,A7) , D0 //ON MET CHAINE1 DANS D0
MOVE.L (8,A7) , D1 //ON MET CHAINE2 DANS D1
MOVE.L (12,A7) , D2 //ON MET TYPE DANS D2
MOVE.L (16,A7) , D3 //ON MET LENGTH DANS D3
MOVE.L A0, -(A7) //ON SAUVEGARDE L'ETAT DE A0
MOVE.L D0, A0 //ON MET D0 DANS A0
MOVE.L A1, -(A7) //ON SAUVEGARDE L'ETAT DE A1
MOVE.L D1, A1 //ON MET D1 DANS A1
BRA.S loop_condition //ON SE BRANCHE DIRECTEMENT SUR LA CONDITION DU WHILE
yes_majuscule :
//LA DIFFERENCE ENTRE UNE MINUS ET SA MAJUS EST : 32 CARACTERES...
ADD.B #32, (A0)
MOVE.L (A0), (A1)
SUB.B #32, (A0)
RTS
if_majuscule2 :
CMP.B (A0), 5A
BLE.S yes_majuscule //SI C'EST INF. A 5A => OK
BGT.S non_fin_mot3 //SINON, ON COPIE UN A UN, I.E A non_fin_mot3
RTS
if_majuscule1 :
CMP.B (A0), 41
BEQ.S if_majuscule2 //SI C'EST SUP. A 41 => OK
BLT.S non_fin_mot3 //SINON, ON COPIE UN A UN, I.E A non_fin_mot3
RTS
execution_MAJUS:
BRA.S if_majuscule1 //ON MET EN MAJUSCULE LA LETTRE
RTS
yes_minuscule :
//LA DIFFERENCE ENTRE UNE MINUS ET SA MAJUS EST : 32 CARACTERES (EN DECIMALE)...
SUB.B #32, (A0)
MOVE.L (A0), (A1)
ADD.B #32, (A0)
RTS
if_minuscule2 :
CMP.B (A0), 7A
BLE.S yes_minuscule //SI C'EST INF. A 7A => OK
BGT.S non_fin_mot3 //SINON, ON COPIE UN A UN, I.E A non_fin_mot3
RTS
if_minuscule1 :
CMP.B (A0), 61
BGE.S if_minuscule2 //SI C'EST SUP. A 61 => OK
BLT.S non_fin_mot3 //SINON, ON COPIE UN A UN, I.E A non_fin_mot3
RTS
execution_MINUS:
BRA.S if_minuscule1 //ON MET EN MINUSCULE LA LETTRE
RTS
non_fin_mot1:
ADD.L #1, A2
CMP.B (D2), #0X00 //SI TYPE==0
BGE.S execution_MAJUS //BGE = SI C'EST EGAL
BNE.S non_fin_mot2 //SI type!=0 => ON VA SUR LE 2ND CAS
RTS
non_fin_mot2:
CMP.L (D2), #01 //SI TYPE==1
BGE.S execution_MINUS //BGE = SI C'EST EGAL
BNE.S non_fin_mot3 //SI type!=1 => ON VA SUR LE 3EME CAS
RTS
non_fin_mot3:
MOVE.L (A0), (A1) //ON FAIT UNE COPIE DIRECTE DE CHAINE1 DANS CHAINE2
//LA, ON EST DANS LE CAS PAR DEFAUT. ALORS, ON COPIE LA CHAINE TELLE QU'ELLE
ADD.L #01, D3 // on incremente length...
RTS
loop_chaine:
CMP.B (A0), #0X20 //CARACTERE ESCAPE = 20
BNE.S non_fin_mot1 //BNE = SI C'EST DIFFERENT
RTS
loop_condition:
ADD.L #1, A0 //NON PAS ADD.L (D3), ..
CMP.L (A0), #0X00 //'\0' = NULL = 00
BNE.S loop_chaine //BNE = SI C'EST DIFFERENT
RTS
while(chaine1[*length] != '\0')
{
if(chaine1[*length] == ' ')
{
chaine2[*length] = '\0';
break;
}
else
{
switch(type)
{
case 0: chaine2[*length] = toupper(chaine1[*length]); break;
case 1: chaine2[*length] = tolower(chaine1[*length]); break;
default :chaine2[*length] = chaine1[*length];
}
(*length)++;
}
}
}
void saisie()
{
char chaine1[200];
int type;
int longueur;
char chaine2[200];
printf("entrer une chaine, puis appuyer sur entree...\n");
gets(chaine1);
longueur = strlen(chaine1);
printf("pour convertir votre chaine en majuscule tapez 0\n");
printf("pour convertir votre chaine en miniscule tapez 1\n");
printf("sinon tapez un autre digit\n");
scanf("%d",&type);
printf("le type de conversion est %d",type );
traitement(chaine1, chaine2, type, &longueur) ;
printf("\n%s", chaine1);
printf("\n%s", chaine2);
printf("\n%d",longueur);
}
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 5 janv. 2006 à 15:10
le Motorolla 68000 n'est pas un language, c'est un microprocesseur....
après, je dirai que si ce sont tes TP, le but d'un forum n'es tpas de faire tes devoirs a ta place....
de plus, tu fournis tout un code, sans dire ce qui te bloque, ce qui est faux, ou quoi que ce soit d'autre.....
au fait, pourquoi ne pas avoir créé un nouveau Topic ??