France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
22 670 membres enregistrés - 1 884 656 posts - 96 271 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Sujets divers
                [C] new sujet : faire un compilateur pour de l'assembleur
42 connectés(record : 207 le 05 juin 2007 - 05 h 23)

Vous devez vous connecter pour répondre au topic.
Precedent | 1,2,3,4,5 | Suivant
[C] new sujet : faire un compilateur pour de l'assembleur

Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 25 novembre 2004 - 07 h 57 m 12 s
Reprise du message précédent :

Le sujet du corewar
op.c
op.h



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 25 novembre 2004 - 10 h 33 m 48 s


Le 24 novembre 2004 - 22 h 07, Woofy a écrit :
Ben ca fait plusieurs fois que je lis le sujet, je comprend toujours rien! :(


Huh, achetes un bouquin de systeme d'exploitation et tu verras beaucoup mieux :)



Sinon on a un gros projet de PHP/MySQL a faire pour le 24 mai... mais on aura jamais de cours de PHP / MySQL!


C'est la ou je me dis pourquoi les paie-t-on si c'est pour que tu fasses ton propre cours en autodidacte sur le Net (car je pense que tous ne sont pas dans ton cas) ?? :chepa:


Sinon, pour tes liens, ca marche pas (serveur a la maison ?) et pour les prochains C, quand il commence a y avoir bcp de code, c'est bcp mieux de les mettre qqpart qu'en copier coller ici :jap:


Message édité 1 fois, la dernière par iraysyvalo le 25 novembre 2004 - 10 h 34.


Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 25 novembre 2004 - 10 h 58 m 43 s
Ben non, c'est pas un lien a la maison, ;ais sur un site, et que ce soit de chez moi ou de l'ecole, j'ouvre la page!
Bizarre!
Tu n'est pas le premier a me le dire, et je trouve ca etrange!
Ptet qu'il faut une connexion a haut debit???



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 25 novembre 2004 - 11 h 00 m 09 s

Plus haut debit tu meurs .. peut-etre un firewall qqpart mais j'en ai pas la maitrise :(

Bref, ce soir je te dis si j'y accede !




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 25 novembre 2004 - 11 h 04 m 44 s
Merci. Pourtant, c'est un hebergeur web, donc port 80!
Si je pouvais mettre le fichier sur le forum je le ferais, mais bon la je sais pas quoi faire!
Pour les fichiers j'ai reussi a faire le tar, pas besoin de compression (30ko) mais je connais pas la commande ftp, et j'ai regarde le man vite fait... pas tout compris.

On fait comment pour envoyer sur l'adresse ftp ftp.xxx.com avec login et motde passe (comme login et mot de passe hein) le fichier monfichier.tar ?



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 25 novembre 2004 - 11 h 14 m 23 s
On peut aussi bloquer par IP et par adresse pas que par port :)

Un 'tit lien rapide p't-etre pour le FTP ? http://newbie.linuxbe.org/linux/modem/ftp.html .. l'essentiel est la ..

EDIT : Pour passer en mode binaire tu fais binary et en mode texte ascii .. moi, j'utilise presque toujours binary.


Message édité 2 fois, la dernière par iraysyvalo le 25 novembre 2004 - 11 h 17.


Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 25 novembre 2004 - 18 h 32 m 45 s

Tes liens marchent :)




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 25 novembre 2004 - 19 h 10 m 47 s
Bon ok, tu m'a fait peur.

Ptet le nom de domaine en .sk qu'il aime pas! :D



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 25 novembre 2004 - 19 h 19 m 34 s

Non, comme dit plus haut, j'etais alors derriere un FW sur lequel je n'avais pas prise .. :)




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 25 novembre 2004 - 19 h 32 m 52 s
ok ok.

Mais c'est bizzare que tu n'ai pas acces a un site alors que tu a acces au forum!
Bon, j'ai presque compris l'assembleur, mais dans leur exemple il y a des irregularités :



- Registre :

r1 <--> rx avec x = REG_NUMBER

Exemple : ld r1,r2. (load r1 dans r2)

- Direct :

Le caractère DIRECT_CHAR suivi d'une valeur ou d'un label (précédé de LABEL_CHARS). ce qui représente la valeur directe.

Exemple : ld %4,r5 (load 4 dans r5)

Exemple : ld %:label, r7 (load label dans r7)

- Indirect :

Une valeur ou un label (précède de LABEL_CHARS) qui représente la valeur qui se trouve à l'adresse du paramètre relativement au PC.

Exemple : ld 4,r5 (load les 4 octets se trouvant a l'adresse (4+PC) dans r5).



Après le type de paramètre, on met directement les paramètres:

- pour un registre on mets sont numéro sur un octet

- pour un direct la valeur sur DIR_SIZE octet(s)

- pour un indirect sur IND_SIZE.




#define IND_SIZE 2 /* en octet */
#define REG_SIZE 4 /* en octet */
#define DIR_SIZE REG_SIZE /* en octet */




Chaque instruction est codée par le code de l'instruction, la description du type des paramètres puis des paramètres.

- Le code de l'instruction (on le trouve dans op_tab qui est lui même dans op.h ).

- La description du type de paramètres (voir figure). Pour les instructions live,zjmp, fork et lfork, elle n'est pas présente.

Codages du type de paramètres :
01 Registre, Suivie d'un octet (le numéro de registre)
10 Direct, Suivie de DIR_SIZE octets (la valeur directement)
11 Indirect, Suivie de IND_SIZE octets (la valeur de l'indirection)





Exemple :
#
# ex.s for corewar
#
# Alexandre David
# Sat Nov 10 22:24:30 2201
#
.name "zork"
.comment "just a basic living prog"

l2: sti r1,%:live,%1
and r1,%0,r1
live: live %1
zjmp %:live

# executable compile:
#
# 0x0b,0x68,0x01,0x00,0x0f,0x00,0x01,
# 0x06,0x64,0x01,0x00,0x00,0x00,0x00,0x01,
# 0x01,0x00,0x00,0x00,0x01,
# 0x09,0xff,0xfb


A la première ligne de l'exemple, on a donc un octet pour l'instruction, un octet pour le type de paramètres, ces 2 la c'est bon, on doit avoir un octet pour le registre, c'est bon, on devrais avoir 4 octets pour le label car c'est un direct, il n'y en que 2, et 4 octets pour le %1, et la aussi il n'y en a que 2!
Même topo pour la dernière ligne, il n'y a que 2 octets pour %:live, il devrais y en avoir 4!



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 25 novembre 2004 - 22 h 15 m 53 s

Ce qu'il faut que tu saches, c'est si on met une valeur directe pour un index, que prend-on, les octes de poids faible ou de poids fort ?

Ce que je deduis, c'est que c'est les octets de poids faible .. maintenant c'est pas specifie !

Reste aussi le codage des labels ...




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 26 novembre 2004 - 00 h 43 m 06 s
Heu... ?
Je sais que la machine virtuelle est de type Big endian. Mais qu'est-ce que tu entend par index?
Pour les labels, ils ne sont pas codés en dur dans le programme, mais quand l'assembleur trouve un appel a un label, il remplace par l'adresse correspondante (va falloir trouver ca aussi!)



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 26 novembre 2004 - 07 h 48 m 20 s


Le 26 novembre 2004 - 00 h 43, Woofy a écrit :
Heu... ?
Je sais que la machine virtuelle est de type Big endian. Mais qu'est-ce que tu entend par index?

Qu'est-ce que tu remarques a chaque fois que t'as trouve une difference avec ce a quoi tu t'attendais ?


Pour les labels, ils ne sont pas codés en dur dans le programme, mais quand l'assembleur trouve un appel a un label, il remplace par l'adresse correspondante (va falloir trouver ca aussi!)

C'est meme plus chiant vu la derniere ligne .. mais ce n'est pas completement decrit non plus ...




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 26 novembre 2004 - 10 h 46 m 04 s


Le 26 novembre 2004 - 07 h 48, iraysyvalo a écrit :
Qu'est-ce que tu remarques a chaque fois que t'as trouve une difference avec ce a quoi tu t'attendais ?

Ben... que la valeur tenais sur 2 octets au lieu de 4... sinon ben... rien!




Pour les labels, ils ne sont pas codés en dur dans le programme, mais quand l'assembleur trouve un appel a un label, il remplace par l'adresse correspondante (va falloir trouver ca aussi!)

C'est meme plus chiant vu la derniere ligne .. mais ce n'est pas completement decrit non plus ...

Ben je vois pas du tout!



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 26 novembre 2004 - 11 h 36 m 37 s

Oui, les valeurs sensees se mettre sur 4 octets sont en fait sur 2 octets a chaque fois que .... ?? D'ou mes questions d'avant ..


Pour les labels, sur la premiere ligne, ok, c'est un deplacement relatif par rapport au debut du programme .. pour la derniere ligne ????




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 26 novembre 2004 - 11 h 52 m 09 s
Pour la dernière ligne, on obtient 0xfffb pour un déplacement de -5. Ca j'ai compris, même si je sais pas comment je vais trouver ca.

Pour la première ligne, ben...
A chaque fois qu'il y a un label? Mais ca contredirais ce qui est dit dans le sujet (qui est bien sur pas explicite du tout)



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 26 novembre 2004 - 12 h 01 m 47 s
Tiens, ce serait -5 a partir de la fin ?? Par contre, ii y a la petite phrase sur la Big endian mais aucune trace sur la description ..

Non, pas a chaque fois qu'il y a un label .. cherche encore .. :)

EDIT : et relis ma question plus haut.


Message édité 1 fois, la dernière par iraysyvalo le 26 novembre 2004 - 12 h 02.


Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 26 novembre 2004 - 12 h 11 m 44 s
Ben Big endian veut dire que les octets se lisent de gauche a droite, l'octet le plus faibe a gauche.
Little endian c'est l'inverse : l'octet le plus faibe a droite.
Dans les 2 cas, dans chaque octet, le bit de poids le plus faible est a droite comme d'habitude.

Bon, j'ai regardé, reregardé, et le seul point commun entre les 2 lignes que je vois est un appel au label live.
Mais ca ne m'explique pas le pourquoi du comment. :(



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 26 novembre 2004 - 12 h 48 m 24 s


Le 26 novembre 2004 - 12 h 11, Woofy a écrit :
Ben Big endian veut dire que les octets se lisent de gauche a droite, l'octet le plus faibe a gauche.
Little endian c'est l'inverse : l'octet le plus faibe a droite.
Dans les 2 cas, dans chaque octet, le bit de poids le plus faible est a droite comme d'habitude.

Je sais .. mais sur ce document, aucun exemple ou transparait la Big Endian ;)
Et Big Endian sur combien d'octets ??



Bon, j'ai regardé, reregardé, et le seul point commun entre les 2 lignes que je vois est un appel au label live.
Mais ca ne m'explique pas le pourquoi du comment. :(

J'ai deduit que c'est le type de commande ..




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Woofy
Pour les bons tuyaux me demander

Messages : 26 197
Inscrit le 11/01/02
Ville : Paris / Grenoble
Non connecté
  Posté le 26 novembre 2004 - 13 h 23 m 06 s


Le 26 novembre 2004 - 12 h 48, iraysyvalo a écrit :


Le 26 novembre 2004 - 12 h 11, Woofy a écrit :
Ben Big endian veut dire que les octets se lisent de gauche a droite, l'octet le plus faibe a gauche.
Little endian c'est l'inverse : l'octet le plus faibe a droite.
Dans les 2 cas, dans chaque octet, le bit de poids le plus faible est a droite comme d'habitude.

Je sais .. mais sur ce document, aucun exemple ou transparait la Big Endian ;)
Et Big Endian sur combien d'octets ??

Heu... je sais pas, faut regarder les specifs de la machine virtuelle. Mais bon ca je pense que ce n'est pas important pour le compilateur.




Bon, j'ai regardé, reregardé, et le seul point commun entre les 2 lignes que je vois est un appel au label live.
Mais ca ne m'explique pas le pourquoi du comment. :(

J'ai deduit que c'est le type de commande ..


Bah je sais pas, c'est dit nul part, et elles n'ont rien de spécial ces commandes par rapport aux autres! (voir le tableau dans le sujet, je vais pas le recopier ici).



:smileymouth: Totalement inutile, donc completement indispensable :smileymouth:

:sms:


iraysyvalo
-

Messages : 9 647
Inscrit le 19/11/02
Ville : Lyon
Non connecté
  Posté le 26 novembre 2004 - 13 h 42 m 16 s

Fais un effort, regarde la definition du zjmp .. et relis ma question, tu devrais trouver la similitude :P

C'est la seule raison que je vois, sinon ils se sont goures sur l'exemple ..




Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.


Precedent | 1,2,3,4,5 | Suivant
Page genérée en 1.5031 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory