begin process at 2010 02 09 17:44:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Aide et documentation

 > 

Ecriture caractère passé en paramètre


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

Ecriture caractère passé en paramètre

mardi 30 décembre 2008 à 19:19:50 | Ecriture caractère passé en paramètre

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 me sort une erreur : invalid combination of opcode and operands

voici le code :

[BITS 32] ; indique à NASM que l'on est en 32 bits

segment .text

global _printchar

_printchar:
              push    ebp
              mov     ebp, esp 
      
              mov     eax, [ebp+8]        ; 1er argument
              mov     ebx, eax
              mov AH, 0Ah                 ; Charge la fonction d'affichage
              mov AL, ebx                 ; Charge le caractère a afficher
              int 10h                     ; Active l'interruption video
      
              pop     ebp                 ;
              ret                         ; retour, la somme est dans
                                          ; EAX


voila j'espère que vous pourrez résoudre mon problème et bonne prog à tous !

mardi 30 décembre 2008 à 21:15:44 | Re : Ecriture caractère passé en paramètre

ghuysmans99

Membre Club
Réponse acceptée !
mov al,ebx => Tu voulais mettre 32 bits dans 16 ? Un peu court, non ? Evidemment il fallait mettre les crochets pour dire "la valeur pointée par EBX".
int 10h ;Active l'int. vidéo => On active pas les interruptions, on les appelles. (En fait, l'instruction INT correspond à l'empilation des flags & registres ((je ne me souviens plus de ce qu'elle empile exactement)) et fait un call sur l'adresse se trouvant en segment 0, offset numint*2 ((2 bytes pour le segment et 2 autres pour l'offset)) ).

_printchar:
    push ebp                ; On sauve EBP
    mov ebp, esp
    mov eax, [ebp+8]        ; 1er argument
    mov ebx, eax
    mov ah, 0Ah                ; Choisis la fonction 0Ah, affichage
    mov al, [ebx]            ; Charge le caractère a afficher
    int 10h                    ; Appelle l'interruption video
    pop ebp
ret                            ; Retour, la somme est dans EAX
http://img404.imageshack.us/img404/7166/signaturegf4.gif
mardi 30 décembre 2008 à 21:20:16 | Re : Ecriture caractère passé en paramètre

ghuysmans99

Membre Club
Et, une question : veux-tu utiliser cette fonction sous Windows ? Ou fais-tu un OS ?
http://img404.imageshack.us/img404/7166/signaturegf4.gif
mardi 30 décembre 2008 à 21:37:28 | Re : Ecriture caractère passé en paramètre

LandTech

Bonjour,

Oui, je projette de faire un OS et donc je réécris une partie de la librairie C pour pouvoir l'utiliser correctement.

Voilà et Merci.
mardi 30 décembre 2008 à 21:41:11 | Re : Ecriture caractère passé en paramètre

ghuysmans99

Membre Club
J'espère que ton OS est en mode protégé sinon pas de 32 bits (et puis si c'est le cas, pas d'interruption 10h)
http://img404.imageshack.us/img404/7166/signaturegf4.gif
mardi 30 décembre 2008 à 21:45:56 | Re : Ecriture caractère passé en paramètre

LandTech

Bonjour,

Oui, je vais le faire en 32 Bits (donc en mode protégé).
Donc, si j'ai bien compris je ne pourrais pas utiliser l'interruption 10h en 32 Bits ?

Voilà
mardi 30 décembre 2008 à 21:45:57 | Re : Ecriture caractère passé en paramètre

LandTech

Bonjour,

Oui, je vais le faire en 32 Bits (donc en mode protégé).
Donc, si j'ai bien compris je ne pourrais pas utiliser l'interruption 10h en 32 Bits ?

Voilà
mardi 30 décembre 2008 à 21:46:31 | Re : Ecriture caractère passé en paramètre

LandTech

Oups désolé pour le double poste.
mardi 30 décembre 2008 à 21:58:33 | Re : Ecriture caractère passé en paramètre

ghuysmans99

Membre Club
Eh non, tu devras travailler directement dans la mémoire vidéo.
Petit exemple (en ASM 16 bits on peut aussi le faire) :

mov [B800h:0000],69 ;caractère : 'F'
mov [B800h:0001],2 ;couleur : vert sur noir
http://img404.imageshack.us/img404/7166/signaturegf4.gif
mardi 30 décembre 2008 à 21:59:31 | Re : Ecriture caractère passé en paramètre

ghuysmans99

Membre Club
Ooops :

mov byte [0B800h:0000],69 ;caractère : 'F'
mov byte [0B800h:0001],2 ;couleur : vert sur noir
http://img404.imageshack.us/img404/7166/signaturegf4.gif

1 2

Cette discussion est classée dans : caractère, mov, ecriture, paramètre, ebp


Répondre à ce message

Sujets en rapport avec ce message

Ecriture de chaîne [ par Laurent1313 ] Salut,Je cherche à modifier une chaîne en assembleur. Je prends donc un caractère, je fais un traitement dessus puis je recopie le caractère dans la c Lecture/ecriture sur disquette [ par Stormy ] Voici ma question (TangyX, tu es exempté de réponse). Une disquette est composée de 2 faces (jusque là c 'est bon) chacune composée de 80 pistes de 18 Quels sont les parametres (nombre, taille...) [ par Renfield ] Bonjour,on peut appeler RunDll32 pour executer des fonctions contenues dans des dll...j'aimerais m'affranchir de cette étape, mais j'ai pour cela beso afficher un caractère avec int 10h [ par thicdorb ] bonjour à tous,je suis débutant en assembleur et je commence par le début : afficher un caractèrej'utilise l'inteeruption BIOS 10h    mov    al, 'A'   Assembleur et tableau + linux + bof [ par flocic ] Bonjour, J'ai un petit pb de comprehension, j'ai un programme qui deborde au bout 44 octet  à cause d'un depassement d ela taille du tableau. Mais ce conversion minuscule [ par safwensafwen ] C'est unprogramme qui fair la conversion en minuscule en utilisant la pile je n'arriv Mov [ par safwensafwen ] Bonsoir,est ce que l'opérateur Mov dans l'exemple: MOV BP,SP , déplace complétement la valeur de SP dans BP ou bien il fait une copie de SP en BP. Si TSR & Détournement d'interrupt(ion) [ par ghuysmans99 ] bonjour à tous.j'ai fait un petit prog en asm 32bits pour dos mais il ne fonctionne pas ... reste à savoir pourquoi !!pourriez-vous m'aider ??;Change nasm [ par henri12 ] salut je viens de compiler ce mbr boot avec nasmnasm -fbin aboot.asm -o binexe.exele programme c est bien compiler mais en lançant d une cle usb l ima boot secteur [ par henri12 ] salutje viens de decompiler le boot secteur d une disquette de demarrageje voudrais savoir ou puis je mettre 15 octet de code que je veux faire execut


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,530 sec (4)

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