ganply | Bonjour à tous.
Je suis tout nouveau dans le monde de la programmation en asm, et je commence déjà à rencontrer quelque probleme :
j'ai codé un petit programme qui affiche un message et attend ensuite l'appuie sur une touche du clavier pour effectuer une action.
Mon but est qu'il soit autonome, donc j'utilise exclusivement des interruptions du BIOS.
Une fois compilé (j'utilise TASM) et linké, il s'execute trés bien sous windows.
Je l'ai copié sur le premier secteur d'une disquette pour qu'il se lance au boot, mais une fois lancé, il affiche des caracteres bizarre au lieu de mes phrases.
Je pense qu'il s'agit d'un probleme de segment ou d'offset mais je seche.
Quelqu'un peut m'aider ?
Mon code (je compile en .COM) :
Code :
- code segment use16
- assume cs:code
- org 100h
- debut:
- mov ax, cs ;initialisation
- mov ds, ax
- mov es, ax
- ecrit macro text, long ;macro pour récupérer la position du curseur et écrire à la suite
- mov ah, 03h
- mov bh, 0
- int 10h
- mov ah, 13h
- mov al, 1
- mov bx, 14
- mov cx, long
- lea bp, text
- int 10h
- endm
- ecrit message, 49
- boucle:
- mov ah, 00h ;boucle pour tester la touche du clavier enfoncée
- int 16h
- cmp al, ' '
- jz fin ;si on appuie sur ESPACE, le programme va à la fin, sinon il affiche "Fonction inconnu"
- ecrit erreur, 19
- jmp boucle
- fin:
- ecrit fini, 36
- mov ah, 00h
- int 16h
- int 19h
- message db "Bonjour",10,10,13,"Que faire ?",10,13,"- SPACE pour redemarrer",10,10,13
- erreur db "Fonction inconnue",10,13
- fini db "Merci d'avoir utilise ce programme",10,13
- code ends
- end debut
|
Merci. Message édité par ganply le 25-08-2006 à 18:02:30
|