Logiciel de base
DANIEL
-
kij_82 Messages postés 4260 Statut Contributeur -
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour, LOGICIEL DE BASE
Adressage Direct:
J'ai eu un probleme pour inserer une instruction afin de changer les premiers characteres de la zone "chars" dans le registre "eax"
.section .data
.equ LG_INT, 4 # un entier fait 4 octects
.equ AD_ENTIERS, # constante contenant l'adresse de entiers
entiers .int 0,1,2,3,4,5,6,7,8,9
.equ LG_ENTIERS, . - entiers # longueur de entiers en octets
.equ NB_ENTIERS, LG_ENTIERS/4 # nombre d'entiers
chars ..ascii "domiciladore"
.equ LG_CHARS, . -chars # longueur de chars en octets
.text
.global main
main:
pushl %ebp
movl %esp, %ebp
xorl %eax, %eax
movb $0xff, %al
movw $0xffff, %ax
movl $-1, %eax
movb %al, %ah
adrdir movl $LG_ENTIERS, %eax #on peut remplacer AD_ENTIERS par sa valeur
movl AD_ENTIERS+LG_INT, %eax
movl AD_ENTIERS+2*LG_INT, %eax
movl $LG_ENTIERS, %ecx # index de boucle
movl $AD_ENTIERS, %eac
adrind # corps de la boucle
#essai d'adressage indirect avec base et deplacement
# on examine les premiers caracteres de "chars" dans EDX
movl $chars, %eax
xorl %edx, %edx
movb 1(%eax), %dl
movb 2(%eax), %dl #etc
#essai d'adressage indirect avec base et index
#EAX contient toujours l'adresse de "chars"
adindex
# Essai d'adressage avec base et index type
movl $entiers, %eax #EAX=adresse de entiers
xorl %ecx, %ecx #index de boucle
xorl %edx, %edx #service a montrer les entiers
#boucle a vous de jouer
adtype
# fin de programme
leave
ret
au fait j'ai essayé de mettre d'abord eax a zero puis de transporter "chars" dans eax
apres j ai fait une transportation du contenu de l'adresse en memoire de eax vers %al
xorl %eax, %eax
movl ckars, %eax
movb (%eax), %al
mais le proble c'est que quand je recompile et reexecute le programme en mettant bien sur un break point a main , je n'arrive pas a trouvé la valeur du code ASCII de la premiere lettre de la chaine de caracteres de "chars" dans le contenu du registre "eax"
SVP, si quelqu'un a une idée, merci de répondre
Adressage Direct:
J'ai eu un probleme pour inserer une instruction afin de changer les premiers characteres de la zone "chars" dans le registre "eax"
.section .data
.equ LG_INT, 4 # un entier fait 4 octects
.equ AD_ENTIERS, # constante contenant l'adresse de entiers
entiers .int 0,1,2,3,4,5,6,7,8,9
.equ LG_ENTIERS, . - entiers # longueur de entiers en octets
.equ NB_ENTIERS, LG_ENTIERS/4 # nombre d'entiers
chars ..ascii "domiciladore"
.equ LG_CHARS, . -chars # longueur de chars en octets
.text
.global main
main:
pushl %ebp
movl %esp, %ebp
xorl %eax, %eax
movb $0xff, %al
movw $0xffff, %ax
movl $-1, %eax
movb %al, %ah
adrdir movl $LG_ENTIERS, %eax #on peut remplacer AD_ENTIERS par sa valeur
movl AD_ENTIERS+LG_INT, %eax
movl AD_ENTIERS+2*LG_INT, %eax
movl $LG_ENTIERS, %ecx # index de boucle
movl $AD_ENTIERS, %eac
adrind # corps de la boucle
#essai d'adressage indirect avec base et deplacement
# on examine les premiers caracteres de "chars" dans EDX
movl $chars, %eax
xorl %edx, %edx
movb 1(%eax), %dl
movb 2(%eax), %dl #etc
#essai d'adressage indirect avec base et index
#EAX contient toujours l'adresse de "chars"
adindex
# Essai d'adressage avec base et index type
movl $entiers, %eax #EAX=adresse de entiers
xorl %ecx, %ecx #index de boucle
xorl %edx, %edx #service a montrer les entiers
#boucle a vous de jouer
adtype
# fin de programme
leave
ret
au fait j'ai essayé de mettre d'abord eax a zero puis de transporter "chars" dans eax
apres j ai fait une transportation du contenu de l'adresse en memoire de eax vers %al
xorl %eax, %eax
movl ckars, %eax
movb (%eax), %al
mais le proble c'est que quand je recompile et reexecute le programme en mettant bien sur un break point a main , je n'arrive pas a trouvé la valeur du code ASCII de la premiere lettre de la chaine de caracteres de "chars" dans le contenu du registre "eax"
SVP, si quelqu'un a une idée, merci de répondre
A voir également:
- Logiciel de base
- Logiciel de sauvegarde gratuit - Guide
- Logiciel - Guide
- Ce logiciel gratuit répare automatiquement votre PC quand Windows a des problèmes - Guide
- Ce petit logiciel gratuit répare automatiquement votre PC sans aucune connaissance technique - Guide
- Base de registre - Guide