cimba Le 26/12/2009 à 17:57 salut, je viens d'écrire un programme c qui contient de l'assembleur et j l'ai compilé par visual c++2008 mais malheureusement il y'a des erreurs que j'ai pas pu les corigés .Svp aidez moi voici mon code
#include<stdio.h>
#include<conio.h>
void datesys(int *jour,int *mois,int *an);
void main()
{
int*jour,*mois,*an;
int s=0,i,j;
char a;
int t[100];
do
{
printf("veuillez saisir c pour date donnée par clavier,s pour date du systéme");
scanf_s("%c", &a);
}
while(a!='s'||a!='c');
void datesys(int *jour,int *mois,int *an)
{
_asm
{
mov ah,2ah;
int 21h;
mov an,CX;
mov mois,DH;
mov jour,DL;
}
}
t[0]=30;
if(*an%4==0)
t[1]=29;
else
t[1]=28;
for(i=2;i<=11;i++)
{
if(i+1%2==0)
t[i]=30;
else
t[i]=31;
}
int v;
v=*mois;
for(j=0;j<v;j++)
s=s+t[j];
s=s+*jour;
printf("le numéro du jour est:%d",s);
getch();
}
Visual C++ 2008 ne compile que pour Windows et ton code assembleur est prévu pour DOS, c'est mal parti...

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo cimba Le 26/12/2009 à 19:38 slt,alors pour visualc++ compile le c en incluant l'assembleur pour windows si tu veux je te donne un exemple simple que je l'ai essayé et ça marche bien sur visual.
exemple d'addition:
#include <stdio.h>
int ADDITION (int a, int b); // Declaration fonction ASM
void main()
{
int somme;
int x;
int y;
printf("\n x = ? "); scanf_s ("%d", &x);
printf("\n y = ?"); scanf_s ("%d", &y);
somme = ADDITION (x, y);
printf("\nsomme = %d\n\n", somme);
}
int ADDITION (int a, int b)
{
// Routine ASM d'Addition
__asm
{
mov eax, a; ; 1er argument reference par son nom
mov ecx, b; ; 2nd argument reference par son nom
add eax, ecx ; le resultat doit tjs etre place dans eax
}
}
Oui ça marche parce que ton deuxième exemple :
- est en 32 bits
- ne fait appel à aucune fonction DOS
Ton premier programme est prévu pour DOS en mode 16 bits, ça ne marchera pas sous Windows.
Tu cherches à faire quoi exactement ?

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo cimba Le 26/12/2009 à 19:53 je cherche à calculer le numéro du jour dans l'année enc a partir de la date système donnée par l'assembleur.
Oui j'ai compris, mais pourquoi utiliser de l'assembleur pour ça, alors qu'il existe des fonctions système appelables en C ?

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turbo cimba Le 26/12/2009 à 21:16 c'est le but d'un tp donné par mon professeur
Demande confirmation à ton prof, la plupart des TP assembleur PC se font sous DOS généralement...

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT Turboc'est l'instruction "INT 21H" qui ne peut marcher que sous DOS et donc, pas sous windows
cimba Le 26/12/2009 à 21:56 ok c'est tout à fait clair merci votre aide tous.
cimba Le 27/12/2009 à 12:04 j'ai essayé mais c'est le même prob.
DJGPP ne fait que du 32 bits, non ?

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboExact. GCC ne gère pas le x86 16 bits.
le mieux pour executer reste encore DOSBOX ^^

Proud to be CAKE©®™
GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.