Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

9 commentaire(s) de roygrizzly sur des sources sur tout CodeS-SourceS

Le : 08/05/2006 22:19:20
Source : GESTION DU CLAVIER EN OPENGL [CODE EN C] [GCC]
salut, tu pourrais expliquer un peu plus? tu utilises openGl ou non?
je sais comment lire au clavier en C mais je ne connais pas les interruptions. J'ai juste des notions d'assembleur donc les interruptions je connais un peu en assembleur.
a+


Le : 06/05/2006 17:51:29
Source : CRÉATION ET UTILISATION DE MAKEFILE
Bonjour,
je programme un compilateur, comme je dois utiliser yacc, lex, gcc, nasm, alink, utiliser un makefile est nécessaire, le voici :

OBJ = arbre.o assembleur.o pile.o tds.o grammaire.o scanner.o main.o
CC = gcc
OP = -Wall -ansi -g


all : analyseurs \
programme \
exec \
assemble

exec : /prog.exe<a.c

programme : $(OBJ)
$(CC) $(OBJ) -o prog.exe

main.o : main.c
$(CC) $(OP) -c main.c -o main.o

arbre.o : arbre.h arbre.c
$(CC) $(OP) -c arbre.c -o arbre.o

assembleur.o : assembleur.h assembleur.c
$(CC) $(OP) -c assembleur.c -o assembleur.o

pile.o : pile.h pile.c
$(CC) $(OP) -c pile.c -o pile.o

tds.o : tds.h tds.c
$(CC) $(OP) -c tds.c -o tds.o

grammaire.o : grammaire.h grammaire.c
$(CC) $(OP) -c grammaire.c -o grammaire.o

scanner.o : lex.yy.c
$(CC) $(OP) -c lex.yy.c -o scanner.o

clean :
rm -f prog.exe *.stackdump core *.o *~ grammaire.h grammaire.c  lex.yy.c a.asm a.obj a.exe

analyseurs :
yacc -d grammaire.y -o grammaire.h
yacc grammaire.y -o grammaire.c
flex scanner.l

assemble :
nasm -fobj a.asm -o a.obj
alink -oPE a.obj -o a.EXE

les règles analyseur et programme fonctionnent mais la règle exec ne fonctionne pas
je veux faire une redirection car mon programme lit un fichier (./prog.exe<a.c). Apparament c'est le < qui pose problème, j'ai essayer \< et \\< mais ça marche pas

Merci pour votre aide

ps: je travaille avec Cygwin


Le : 03/05/2006 14:28:39
Source : EXEMPLES SIMPLES DE FICHIERS ÉCRITS AVEC NASM
je viens de comprendre ton code, en faisant :
push dword 0x00000031
push dword 0x39393939
j'obtient 99991 !!

merci


Le : 03/05/2006 13:26:29
Source : EXEMPLES SIMPLES DE FICHIERS ÉCRITS AVEC NASM
cool, ça marche, merci beaucoup, pour afficher un 0 j'ai juste à faire :
push dword 0x00000030
pour 10:
push dword 0x00003031
pour les négatifs:
push dword 0x0000312D
avec ce système on peut aficher un chiffre entre -999 et 9999
il faudrais concaténer plusieurs dword si le chiffre est grand (ou petit si négatif)
je vais essayer de programmer ça en C vu que c'est le boulot du compilateur

merci


Le : 03/05/2006 12:52:08
Source : EXEMPLES SIMPLES DE FICHIERS ÉCRITS AVEC NASM
désolé j'ai fait une faute : il faut lire
sub esp,4
et non
ret esp,4


Le : 03/05/2006 12:49:37
Source : EXEMPLES SIMPLES DE FICHIERS ÉCRITS AVEC NASM
1)la conversion c'est trop compliqué pour moi!!! les codes que j'ai trouvé sont trop longs et je comprends pas tout, y'a t il moyen de mettreune chaine de caractères dans la pile?
2)si je comprends bien, pour accèder à mon paramètre, dans le sus programme, il faut que je fasse:

mov bx, esp ;sauvegarde de esp
add esp,4
pop ax ;récupération du parmètre
mov esp, bx ;restauration de esp

ou bien:

add esp,4
pop ax,
ret esp,4
?

3)eip prends la valeur du sommet de pile si je comprends bien? il doit y avoir quoi dans le sommet de pile?
4)je ne peux pas dépiler toute la pile avant d'apeller le sous programme vu que j'ai besoin du ou des paramètres

merci




Le : 03/05/2006 10:13:58
Source : EXEMPLES SIMPLES DE FICHIERS ÉCRITS AVEC NASM
dans AX, il y a un entier, ici 3, en faite c'est du code généré par mon compilateur, donc il y a la fonction main et la fonction printf, pour passer 3 en paramètre de la fonction printf [printf(3)] je fais un push 3

extern ExitProcess
import ExitProcess Kernel32.dll
extern MessageBoxA
import MessageBoxA user32.dll

segment code public use32 class=CODE
..start:
call main
push byte 0
call [ExitProcess]
ret
;--------------------------
printf:
pop ax
movzx eax,ax
mov [Message],eax
push byte 0
push dword Titre
push dword Message
push byte 0
call [MessageBoxA]
ret
;--------------------------

main:
push 3
call printf
ret
segment data public use32 class=DATA
Titre db "Affichage des messages :",0
Message db "...",0

Tampon resd 100

ça assemble mais quand je le lance, la fenetre est bizarre, elle n'a pas de bordure ni de titre, et ça affiche 7 et à coté un carré puis quand je fais OK, le programme plante, windows me dit que le prog a rencontré un problème et qu'il l'a fermé

merci


Le : 03/05/2006 09:18:06
Source : EXEMPLES SIMPLES DE FICHIERS ÉCRITS AVEC NASM
Ce code fonctionne parfaitement!!
J'aimerai savoir comment il faut faire pour afficher le contenu d'un registre, qui est chez moi un entier? Voici ma fonction qui fait comme un printf en C mais dans une fenetre: le paramètre est mis dans la pile avant l'apel à printf

printf:
pop AX
mov dword [Message],AX
push byte 0
push dword Titre
push dword Message
push byte 0
call [MessageBoxA]
ret

et ça marche pas, c'est un problème de type apparament:
a.asm:15: error: mismatch in operand sizes
make: *** [assemble] Error 1

merci


Le : 22/11/2005 13:27:44
Source : GESTION DU CLAVIER EN OPENGL [CODE EN C] [GCC]
nightlord666 a raison, cette source ne compile pas en norme ansi
il manque les return
de plus la gestion du clavier ne fonctionne pas :
"attention : passage de l'argument n^01 de << glutKeyboardFunc >> d'un type pointeur incompatible"
ce n'est qu'un warning, mais il y a problème
La bonne en-tête de fonction est "void clavier(unsigned char key, int x, int y)".
Pour compiler il faut utiliser la norme ansi : gcc -ansi, c'est important pour avoir un code propre et tout à fait portable.



1


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.