Logiciel de base

Fermé
DANIEL - 24 janv. 2007 à 21:26
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 25 janv. 2007 à 10:20
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
A voir également:

1 réponse

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
25 janv. 2007 à 10:20
C'est quoi comme langage ? De l'assembleur ? (ca y ressemble)
0