[SYS][ASM][2IR]Asm

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu [SYS][ASM][2IR]Asm

Message  galaeron le Mer 02 Nov 2011, 21:26

Je viens d'écrire pour le cours de Système de M. JCJ une fonction mHead.asm étant capable de reproduire à peux de chose près le comportement de head.
Bien que ma fonction "fonctionne", il subsiste quelques doutes sur le fond ...

Environnement :
Ubuntu 32bits + nasm


  1. En section .text
    Pourquoi dois je spécifié la taille si j’effectue ceci
    Code:
    mov      [buf],0
    et quel est la différence entre
    Code:
    mov    word[buf],ax ET mov      [buf],word ax

  2. Toujours en section .text
    J'imagine que l'on ne peut comparer avec CMP que deux éléments de même taille ?
    Pourquoi puis je faire alors
    Code:
     cmp  eax,0xa



PS : Si le code de ma fonction est nécessaire pour les explications merci de me le préciser Wink


Dernière édition par galaeron le Mar 08 Nov 2011, 18:24, édité 4 fois (Raison : Résolu une partie de mes problèmes)

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  nvs le Mer 02 Nov 2011, 22:39

galaeron a écrit:En section .text
Pourquoi dois je spécifié la taille si j’effectue ceci
Code:
mov      [buf],0
parce que nasm ne retient pas la taille de buf et 0 n'a pas de taille. comme ni la source ni la destination de mov n'ont de taille, il faut la spécifier à nasm.

galaeron a écrit:quel est la différence entre
Code:
mov    word[buf],ax ET mov      [buf],word ax
il n'y en a pas. de plus, le word est inutile car ax a une taille : nasm s'en sert pour déterminer la taille de buf.

galaeron a écrit:Toujours en section .text
J'imagine que l'on ne peut comparer avec CMP que deux éléments de même taille ?
Pourquoi puis je faire alors
Code:
 cmp  eax,0xa
car eax a une taille : nasm s'en sert pour donner une taille à 0xA Smile








cyclops

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  galaeron le Mer 02 Nov 2011, 22:49

Merci bien pour ces précisions !

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  galaeron le Jeu 03 Nov 2011, 19:08

Encore une petite question cela dit ...

Partie du code en .data
Code:
char    db    "-c"
Partie du code en .text
Code:
mov    esi,[char]
cmp    [esp],esi
je        _char_

J'ai donc réservé un double word dans lequel j'ai mit "-c" ?
Je place ceci dans esi et je compare le contenu de esp avec ce "-c" ?
Non?
Pourtant ca ne je jamais Neutral

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  pbt le Jeu 03 Nov 2011, 20:07

Tiens, esi c'est combien de bytes ?

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  galaeron le Jeu 03 Nov 2011, 20:57

"si" correspond au 16bits de poids faible de esi. Il a donc la même taille que eax je dirais ... soit 32 bits

This is represented by prefixing an "E" (for Extended) to the register names in x86 assembly language. Thus, the AX register corresponds to the lowest 16 bits of the new 32-bit EAX register, SI corresponds to the lowest 16 bits of ESI, and so on.
Source : http://en.wikipedia.org/wiki/X86#32-bit

byte = 8 bits
word = 16 bits
dword = 32 bits
Je mets donc quelque chose en 32 bits dans un registre 32 bits si je ne m'abuse ... et je compare deux éléments en 32 bits ...

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  nvs le Jeu 03 Nov 2011, 22:08

de plus [esp] est assez cavalier aussi, probablement...

pour ce que j'en vois, tu es loin du comptes ! ceci dit, pourquoi s'acharner à ne pas le faire en c ?




What a Face

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  Dj x-fuse le Jeu 03 Nov 2011, 22:29

nvs a écrit:de plus [esp] est assez cavalier aussi, probablement...

pour ce que j'en vois, tu es loin du comptes ! ceci dit, pourquoi s'acharner à ne pas le faire en c ?
Et en cobol ?

Dj x-fuse

Nombre de messages : 658
Age : 27
Prénom : Jonathan
Statut : 4ième sécu
Localisation : IRL
Date d'inscription : 18/10/2008

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  galaeron le Ven 04 Nov 2011, 08:43

nvs a écrit:de plus [esp] est assez cavalier aussi, probablement...

pour ce que j'en vois, tu es loin du comptes ! ceci dit, pourquoi s'acharner à ne pas le faire en c ?




What a Face

Que voulez vous dire par assez "cavalier"?
"loin du compte"? Aurais je manquer quelque chose?
Parce qu'en C je l'ai déjà fait sans aucun soucis =') mais que M. JCJ veut que l'on soit capable de le faire en asm aussi Wink

EDIT :
Trouvé un moyen pour que ça marche ... mais le pourquoi reste flou ...
Code:
mov            esi,[esp]              ;Obligatoire sinon ça ne jump pas ... pourquoi? Je ne sais pas encore ...
cmp            word [esi],"-c"        ; le word est obligatoire ici ... pourquoi? Je ne sais pas non plus ... les brackets? Pareil ...
je                _whatever_
EDIT 2 :
A savoir que ...
Code:
.data
param1              dw  "-c"
.text
mov                si,[param1]
cmp                si,"-c"
Fonctionne comme prévu ...

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  galaeron le Lun 07 Nov 2011, 22:38

J'ai réussis à faire ma comparaison de [esp] et "-c" "proprement" cependant il reste un soucis d'ordre général ...
Y a il un moyen "simple" de créer un int facilement incrementable et qui soit writable à l'écran ...

EDIT : Problème résolu
Fonction du type printd à utiliser ...

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

resolu Re: [SYS][ASM][2IR]Asm

Message  Contenu sponsorisé Aujourd'hui à 01:08


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum