deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 2016
-
5 déc. 2006 à 18:43
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
6 déc. 2006 à 03:33
Bonjour,
Voila je débute en ASM et je veu faire un bête programme qui inverse une chaine de caractère. Je l'ai fait, mais celui-ci, ne va pas vraiment très bien. Je l'ai tester sur papier, tout doit aller, je l'ai filer à un gars, il n'a rien trouver non plus :s . Voici le code :
.386
assume SS:pile,CS:code,DS:donnees
pile segment stack use16
DB 1024 DUP(0)
pile ends
donnees segment use16
acStr1 DB "zorro$"
donnees ends
code segment use16
main :
mov AX,donnees
mov DS,AX
mov SI,0
mov BX,5
dec BX
mov AX,0
deb_bcl_1 :
CMP SI,BX
JE fin_bcl_1 ;Si les deux compteurs sont égaux, on arrête la boucle.
mov AL,acStr1[SI]
Xchg AL,acStr1[BX]
mov acStr1[SI],AL
inc SI
dec BX
fin_bcl_1:
mov AH,09h
LEA DX,acStr1
int 21h
mov ah,4ch
int 21h
code ends
end main
Au lieu d'afficher orroz il affiche oorrz, il ne fait pas une fois assez l'invertion, mais j'ignore pourquoi , j'ai esseye de remplacer le Je pas JA ou JAE, mais rien n'y fait.