Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2902 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  homework

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

homework

n°2253971
kenouza
Posté le 23-03-2015 à 14:53:43  profilanswer
 

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
           
           

mood
Publicité
Posté le 23-03-2015 à 14:53:43  profilanswer
 

n°2256518
db__
spécialiste de l'à peu près
Posté le 23-04-2015 à 23:57:12  profilanswer
 

j'ignorais que l'on perdait son temps encore à programmer des bétises en 8086.
Il serait tout de même plus utile de programmer au moins en 32 bits voir 64 bits.
dans proc miroir tu commences par faire 5 push
11 lignes plus bas tu fais 2 pop
13 lignes plus bas tu fais 5 pop puis ret
comme il y a 2 pop de trop, la pile n'est plus équilibrée et le retour se fait à une adresse aléatoire


---------------
je suis né fatigué et fait pour me reposer

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  homework

 

Sujets relatifs
Plus de sujets relatifs à : homework


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR