Asssembleur

funinformatique Messages postés 3 Statut Membre -  
funinformatique Messages postés 3 Statut Membre -
slt tous le monde , j'ai devlopé ce code en assembleur , qui a pour role , de detourné la int 20h vers une autre routine
et je sais pas prk
ca marche pas
aidé moi a le corrigé et merci

title tp_2
.model small
.stack 100h
.data
msg db "suucess detournement 20h $"
msg1 db "pour continuer tapez 1 , pour terminer tapez 0 $"

msg2 db "le programme va se terminer $"

redirect_int proc
push ds
mov ax,cs
mov ds,ax

mov dx,offset new_routine

mov ah,25h
mov al,20h
int 21h
pop ds
int 20h
redirect_int endp

new_routine proc

call success_detournement msg
call routine_detournement msg1
new_routine endp

success_detournement proc

mov ah,9
mov dx,offset msg
int 21h

endm success_detournement

routine_detournement proc
adr3:

mov ah,9
mov dx,offset msg1
int 21h

mov ah,1
int 21h
cmp al,'1'
je adr1
jne adr2
adr1:
call afficher_msg msg2
adr2:
cmp al,'0'
je adr4
jne adr3
adr4:
call fin_propre
routine_detournement endp

afficher_msg proc

mov cx,5

boucle:

mov ah,9
mov dx,offset msg2
int 21h

loop boucle

afficher_msg endp

fin_propre proc
pop ds
pop dx
mov ah,25h
mov al,20h
int 21h

fin_propre endp

.code

main proc
mov ax,@data
mov ds, ax
mov ah ,35h
mov al,20h
int 21h
push bx
push es
call redirect_int

endp main
end

3 réponses

funinformatique Messages postés 3 Statut Membre
 
ce code ne marche pas aidez moi a le corrigé
0
nicocorico Messages postés 846 Statut Membre 138
 
Et à quel endroit ça bloque ?
Est-ce que le détournement lui-même fonctionne ?

Il y a quelques problèmes au niveau de la manière de coder dans 'routine_detournement', et surtout un gros soucis sur le rétablissement de l'interruption d'origine, car tu sauvegarde BX et ES sur la pile, et tu veux les dépiler à la suite de plusieurs Call, donc en fait tu dépiles les adresses de retour des Call au lieu des valeurs souhaitées.
Pour y palier, il suffit de les sauvegarder dans des variables...

Le chêne aussi était un gland, avant d'être un chêne
0
funinformatique Messages postés 3 Statut Membre
 
merci :)
0