IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 16-bits Assembleur Discussion :

[TASM] Déroutement d'une IT sans utiliser les fonctions 35H et 25H


Sujet :

x86 16-bits Assembleur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Points : 32
    Points
    32
    Par défaut [TASM] Déroutement d'une IT sans utiliser les fonctions 35H et 25H
    Bonjour à tous,
    Voila, je veut ecrire un programme assembleur qui déroute n'importe qu'elle interruption (c'est l'utilisateur qui saisi le numero du vecteur d'IT) mais sans utiliser les fonctions de dos (25H et 35H), donc normalement j doit ecrire 2 fonctions, l'une lit le vecteur d'it et l'autre l'écrit (même taches que 25H et 35H) ; mais je ne sais pas comment procéder

    PS: -Je suis sous dos architecture x86 16bits.
    -compilateur: TASM.

    SVP aidez moi car j'on ai vraiment besoin.....
    Merci d'avance

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    slt

    va voir avec ton prof d'archi elle a surement une reponse
    si ta une reponse fait moi signe

    sinon attend que je le fait et je te donne la solution


    ps: pour le prix on va negocier demain dans le cour d'algo

  3. #3
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Il y a la réponse quelques topics plus bas. Il faut écrire l'adresse (segment:offset) de la nouvelle interruption dans un tableau qui se trouve au tout début de la mémoire.
    :wq

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 58
    Points : 32
    Points
    32
    Par défaut
    voici un premier code que j'ai fait mais qui n'est pas vraiment au points, j'espere que vous allez m'aider à le corriger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    code segment
    assume cs:code
     
    lire_vect_it proc 
    push ds
    push cx
    push si
     
    xor ah,ah
    mov cl,2
    shl ax,cl
    mov si,ax
    mov cx,0
    mov ds,cx
    mov bx,word ptr[si]
    mov es,word ptr[si+2]
     
    pop si
    pop cx
    pop ds
    ret
    endp
     
    saisir_num_vect_it proc  
    xor ax,ax
    mov ah,01h
    int 21h
    ret
    endp
     
    ecrire_vect_it proc
    push ds
    push cx
    push si
    mov di,ds
    mov cl,2
    shl ax,cl
    mov si,ax
    mov cx,0
    mov ds,cx
    mov [si],dx
    mov [si+2],di
     
    pop si
    pop cx
    pop ds
    ret 
    endp
     
    call saisir_num_vect_it 
    call lire_vect_it proc 
    call ecrire_vect_it proc
     
    code ends
    end

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Je n'ai vraiment pas le temps d'analyser ton code, mais au premier regard, il manque "cli" et "sti" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ecrire_vect_it proc
    cli
    push ds
    push cx
    push si
    mov di,ds
    mov cl,2
    shl ax,cl
    mov si,ax
    mov cx,0
    mov ds,cx
    mov [si],dx
    mov [si+2],di
    
    pop si
    pop cx
    pop ds
    sti
    ret 
    endp
    Après faudrait que j'y regarde un peu .
    Forum Programmation d'OS - Tutoriel pour créer un petit noyau 32 bits .

    ( le développement de littlefoot86 est abandonné ... )

Discussions similaires

  1. [Débutant] Commander une application sans utiliser les métodes sendkeys
    Par r.morel dans le forum VB.NET
    Réponses: 6
    Dernier message: 10/11/2014, 12h43
  2. utiliser une transaction sans vérouiller les tables
    Par brruno dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/09/2014, 17h58
  3. [XL-2010] Conditionner une liste de choix en fonction d'une autre sans utiliser la fonction INDIRECT
    Par rocofolie dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/11/2013, 12h54
  4. Réponses: 14
    Dernier message: 26/06/2013, 18h03
  5. Réponses: 11
    Dernier message: 18/02/2007, 23h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo