Bonjour tout le monde :jap:
j'ai fait un program assembleur (8086) mais jai remarquer que des qu'il arrive a la procedure "miroir" il l'execute et ne passe pas par la suivante qui est "palindrome" s'il vous plait aider moi a detecter l'erreur voice l'ennonce et le prog
Énoncés du sujet : Vous allez développer un programme offrant les fonctionnalités suivantes : • Demander à l'utilisateur de saisir une chaîne de caractères quelconque. • Le programme s'occupera ensuite de ré-afficher la chaîne entrée ainsi que son miroir. • Le programme devra également renvoyer sous forme de message affiché a l'écran une des affirmations suivantes : - La chaine n'est pas un palindrome. - La chaine est un palindrome simple. - La chaine est un palindrome strict.
program:
;multi-segment executable file template.
data segment
msg1 db '----->saisissez votre chaine<-----$'
msg2 db 'la chaine que vous avez saisie est:$'
msg3 db 'la chaine miroir de ce que vous avez saisie est:$'
msg4 db 'la chaine que vous avez saisie est:$'
msg5 db 'la chaine n est pas palindrome$'
msg6 db 'la chaine est un palindrome SIMPLE$'
msg7 db 'la chaine est un palindrome STRICT$'
chaine db 50 dup ('$')
return db 13,10,dup('$')
data ends
stack segment
dw 128 dup(0)
stack ends
code segment
;set segment registers:
mov ax, data
mov ds, ax
mov es, ax
;l'appel des procedures
call saisie
call miroir
call palindrome
;exit to operating system.
mov ax, 4c00h
int 21h
proc saisie
push dx
push ax
;affichage de msg1
mov dx , offset msg1
mov ah , 09H
int 21H
;affichage du retour chariot
mov al, 0dH ;cret
mov ah, 0eh ;caracter to write
int 10h
mov al , 0aH ;newline
int 10h
;lecture de la chaine
mov ah,0Ah
mov dx,offset chaine
int 21h
;affichage du retour chariot
mov al, 0dH
mov ah, 0eh
int 10h
mov al , 0aH
int 10h
;affichage de msg2
mov dx , offset msg2
mov ah , 09H
int 21H
;affichage du retour chariot
mov al, 0dH
mov ah, 0eh
int 10h
mov al , 0aH
int 10h
;affichage de la chaine lue
mov bx , 0H ;par precaution pas sure
mov bl , chaine[1]
mov chaine[bx+2], '$'
mov dx , offset chaine+2
mov ah , 09h
int 21h
;affichage du retour chariot
mov al, 0dH
mov ah, 0eh
int 10h
mov al , 0aH
int 10h
pop ax
pop dx
ret
saisie endp
proc miroir
push si
push cx
push ax
push bx
push dx
;affichage de msg3
mov dx , offset msg3
mov ah , 09H
int 21H
;affichage du retour chariot
mov al, 0dH
mov ah, 0eh
int 10h
mov al , 0aH
int 10h
pop ax
pop dx
;affichage du miroir
mov bx , 0h ;par precaution
mov bl ,chaine[1]
mov si , bx
mov chaine[1] , '$' ;pas sure
mov cx , bx
mov ah , 02H
repeter:mov dl , [chaine+si+1]
int 21h
dec si
loop repeter
mov chaine[1] , bl ;pa sure
pop dx
pop bx
pop ax
pop cx
pop si
ret <----------le problem:une fois ici il sort pas il reste la
miroir endp
proc palindrome
;affichage de msg4
mov dx , offset msg4
mov ah , 09H
int 21H
ret
palindrome endp
code ends