begin process at 2012 05 25 04:03:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Système d'exploitation

 > 

Windows

 > 

que fait ce programme?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

que fait ce programme?

vendredi 31 décembre 2010 à 11:03:46 | que fait ce programme?

scofild52

je veut changer linterreption int23h de la command dos.
je fait cette essai mais je ne peut pas est-ce que c'est fait ou non.quelq'un put me aider?




TITLE BRK2 -- Break Handling Utilities Module



TRUE EQU 01H ;boolean true

FALSE EQU 00H ;boolean false

BREAKINT EQU 23H ;dos control-break intrpt

GETVECTOR EQU 35H ;dos get vector function

SETVECTOR EQU 25H ;dos set vector function

DOS_FUNCTION EQU 21H ;dos function call



BREAK SEGMENT PUBLIC 'CODE'

BREAKFLAG DB 0H ;break key hit flag

SAVEBRK DD 0H ;saved break vec. contents

ASSUME CS:BREAK

ASSUME DS:NOTHING



;CHECK_BREAK checks if ctrl-break has been pressed. It returns

;true if ctrl-break has been pressed and false if it hasn't.



PUBLIC CHECK_BREAK

CHECK_BREAK PROC FAR

XOR AX, AX ;clear ax

MOV AL, BREAKFLAG ;return value = breakflag

MOV BREAKFLAG, FALSE ;reset breakflag

RET

CHECK_BREAK ENDP



;INSTALL_BREAK_HANDLER sets up a ctrl-break interrupt handler. It

;also saves the address of the former break handler so that it can

;be restored later.



PUBLIC INST_BRK_HANDLR

INST_BRK_HANDLR PROC FAR

PUSH DS

MOV AL, BREAKINT ;AL = break interrupt

MOV AH, GETVECTOR ;AH = dos function code

INT DOS_FUNCTION ;call dos

MOV WORD PTR SAVEBRK, BX ;save offset in int vector

MOV WORD PTR SAVEBRK+2, ES ;save base in int vector

MOV AL, BREAKINT ;AL = break interrupt

MOV AH, SETVECTOR ;AH = dos function code

MOV DX, OFFSET BRK_HANDLER ;DX = offset of brk handler

MOV BX, CS ;BX = this segment

MOV DS, BX ;DS = this segment

INT DOS_FUNCTION ;call dos

POP DS

RET

INST_BRK_HANDLR ENDP



;BRK_HANDLER is invoked by the bios when ctrl_break is pressed



BRK_HANDLER PROC FAR

MOV BREAKFLAG, TRUE ;breakflag = yes, break hit

IRET

BRK_HANDLER ENDP



;REMOVE_BREAK_HANDLER restores the previous ctrl-break handler



REM_BRK_HANDLR PROC FAR

PUSH DS

MOV AL, BREAKINT ;AL = break interrupt

MOV AH, SETVECTOR ;AH = dos function code

MOV DX, WORD PTR SAVEBRK ;DX = saved 1st word

MOV BX, WORD PTR SAVEBRK+2 ;BX = saved 2nd word

MOV DS, BX ;DS = saved 2nd word

INT DOS_FUNCTION ;call dos

POP DS

RET

REM_BRK_HANDLR ENDP

BREAK ENDS

END


vendredi 31 décembre 2010 à 14:02:55 | Re : que fait ce programme?

Guilou34

Salut
Ton programme ne fait rien du tout et si tu veux l'exécuter il se plantera.
Aucune procédure n'est jamais appelée puisqu'il n'y a pas de procédure initiale. Procédure dont le nom doit, d'ailleurs, être signalé à l'assembleur par la directive END nom.
Si c'est par distraction ce n'est pas bien grave mais si c'est par ignorance, je te conseille de revoir les bases de l'assembleur.
Amicalement.


vendredi 31 décembre 2010 à 21:06:11 | Re : que fait ce programme?

scofild52

nn mon amis je l'execute avec tasm.c'est just les procedure j'ai pas mettre tous le code.je veux conntaitre est-ce-que il change l'interreption int 23h ou nn.
mardi 4 janvier 2011 à 18:36:49 | Re : que fait ce programme?

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

Si toi même tu ne sais pas ce que tu programmes, je peux bien te dire oui ou non que je ne m'amuserais pas a analyser ton code pour te le dire.

Donc, non, ce n'est pas bon. (réponse équivalente à la question: aléatoire.)

@++
mardi 4 janvier 2011 à 23:59:22 | Re : que fait ce programme?

patatalo

Membre Club Administrateur CodeS-SourceS
ce code hook l'interruption 1Ch et c'est sur.

la partie de code qui crée le hook.
148. cli
149. mov ax,[0x1C*4]
150. mov dx,[0x1C*4+2]
151. mov [.ooffs],ax
152. mov [.oseg],dx
153. lea ax,[.Intr1C]
154. xor dx,dx
155. mov [0x1C*4],ax
156. mov [0x1C*4+2],dx
157. sti

...

la partie de code executée lors de l'int.
190..Intr1C;()
191. inc byte [cs:.count]
192. db 0xEA ; jmp far
193..ooffs
194. dw 0
195..oseg
196. dw 0
197..count
198. db 0
199. db 0
200..dotcnt
201. db 0

Pour tester si ton hook fonctionne, fait un simple affichage dans ton hook et appuie sur CTRL+C voir si cela s'affiche.

@++


Cette discussion est classée dans : function, mov, break, dos, handler


Répondre à ce message

Sujets en rapport avec ce message

asm dos sous xp probleme adressage memoire ecran [ par blood01 ] Bonjour, Voilà, j'ai toujours aimé programmer à mes heures perdues et depuis tout un temps, j'ai décidé de me lancer dans l'assembleur, j'ai d'abord f "MOV WORD, EBX" Comment faire ? [ par Nowid50 ] Bonjour,Je suis débtant en assembleur et après quelques recherches, je ne trouve pas mon bonheur.Mon application requiert que je face l'instruction su Masm32 - adressage direct - soucis ! [ par ouadji ] Bonjour à tous,mov eax , [11223344h]cette instruction existe ! registre de segment utilisé ... DS ... par défaut !Code machine de cette instruction : Ecriture caractère passé en paramètre [ par LandTech ] Bonjour, comme c'est dit dans le titre je voudrais afficher un caractère passé en paramètre avec l'interruption Bios 10h.j'ai écris un code mais Nasm fatal error LNK1190 [ par WildChild54 ] Bonjour à tous!Eh bien voilà, je voudrais créer un petit programme affichant l'heure (je sais il y en a déjà plusieurs qui en ont parlé ici) mais j'ai Lecture de DTA [ par mouadestla ] Bonsoir , je débute en assembleur , j'esseye de coder en 16 bits un petit programme qui fait appele à l'interuptions 21h : 4Eh du DOS qui cherche un f question sur le language asm [ par dyroj ] bonjour,j'ai qulque question sur l'asm :-quand je fait un : mov ax, 10 , quesqui va dans le registre (ladresse de 10 dans la ram, ou 10).-pourquoi se Problème d'affichage de programme après compilation [ par li2k ] Salut tout le Monde.Bon voilà, dans le cardre d'un projet scolaire, j'ai écris un programme assembleur avec l'émulateur "Emul8086".dans ce programme j Entrée d'une chaine de cractères [ par w4kfu ] J'é message d'erreur [ par kaka83185 ] slt a tous, je suis débutant en langage assembleur,j'essaye de faire mon premier programme en MASM, et c'est en fait l'addition d'un nombre avec un au


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales