begin process at 2012 05 24 01:52:20
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

c et asm

 > AFFICHER UNE CHAINE DE CARACTERE MASM32

AFFICHER UNE CHAINE DE CARACTERE MASM32


 Information sur la source

Note :
Aucune note
Catégorie :c et asm Niveau :Débutant Date de création :26/01/2004 Date de mise à jour :27/01/2004 13:54:00 Vu :5 065

Auteur : Vv20oX

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Bonjour a tous!
Ce petit bout de code affiche betement l'alphabet.
Pour les debutants,vous allez voir comment on manipulent les variables.
C'est un exemple trés simple....
Bonne Prog.

Source

  • .386
  • .model flat, stdcall
  • option casemap :none
  • include \masm32\include\windows.inc
  • include \masm32\include\user32.inc
  • includelib \masm32\lib\user32.lib
  • include \masm32\include\kernel32.inc
  • includelib \masm32\lib\kernel32.lib
  • Chaine PROTO :DWORD
  • .data
  • .data?
  • table db 26 dup (?)
  • .code
  • start:
  • invoke Chaine,26
  • invoke MessageBox,0,ADDR table,ADDR table,MB_OK
  • invoke Chaine,10
  • invoke MessageBox,0,ADDR table,ADDR table,MB_OK
  • invoke ExitProcess,0
  • Chaine Proc NBLETTRE:DWORD
  • xor ebx,ebx
  • mov al,64
  • initialisation:
  • inc al
  • mov byte ptr[table+ebx],al
  • inc ebx
  • cmp ebx,NBLETTRE
  • jnz initialisation
  • mov byte ptr[table+ebx], 0
  • ret
  • Chaine endp
  • end start
.386

.model flat, stdcall

option casemap :none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib    
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
Chaine PROTO :DWORD

.data

.data?

table db 26 dup (?)


.code

start:


invoke Chaine,26
invoke MessageBox,0,ADDR table,ADDR table,MB_OK

invoke Chaine,10
invoke MessageBox,0,ADDR table,ADDR table,MB_OK


invoke ExitProcess,0

Chaine Proc NBLETTRE:DWORD

xor ebx,ebx
mov al,64
initialisation:
inc al
mov byte ptr[table+ebx],al
inc ebx
cmp ebx,NBLETTRE
jnz initialisation
mov byte ptr[table+ebx], 0
ret
Chaine endp



end start




 Sources du même auteur

CHEMIN DES REPERTOIRES SYSTEM,WINDOWS,TEMPORAIRE,COURANT [MA...
LISTER VOS FICHIER TEMPORAIRE DANS UNE LISTBOX MASM32
COSINUS D'UN ANGLE EN DEGRÉS MASM32
TEXTBOX,BOUTON,TIMER MASM32
GENERE UN NOM AU HAZARD

 Sources de la même categorie

INTERFACE C ET ASM par parki
Source avec Zip Source avec une capture FONCTION INTTOBIN par Ken21
Source avec Zip MOT PALINDROME par Tinsalhi
EXECUTE /USR/BIN/ID par 0x0syscall
BIBLIOTHEQUE POUR LE 8086 par flory_

Commentaires et avis

Commentaire de BruNews le 26/01/2004 15:10:28 administrateur CS

mov edx, offset table
mov al, 65
Lloop:
mov byte ptr[edx], al ; instruction + courte en taille
inc al
inc edx
cmp al, 90
jbe short Lloop
mov byte ptr[edx], 0 ; OBLIGATOIRE !!!

Commentaire de Vv20oX le 26/01/2004 18:49:33

Bonjour a tous!
il y a du code en trop ,c'est corrigé:
Juste pour afficher les lettres de l'aphabet:


xor ebx,ebx
mov al,64
initialisation:
inc al
mov byte ptr[table+ebx],al
inc ebx
cmp ebx,26
jnz initialisation

Conclusion:
Mon code marche trés bien,puisque je l'ai testé et en plus
je le pense trés fort.On ne peut me contredire sur une fonction qui
marche! ;)
mov byte ptr[edx], 0 <--- cette fonction n'est pas obligatoire
c'est juste pour ajouté une ligne en plus,comme une guirlande
en plus que l'on accroche a un sapin de noel.
Ou comme un enfant que l'on oublie d'enseigner la politesse..
La taille de la variable table est fait pour recevoir 26 "octet",ma
"Fonction" lui en donne aussi 26...Donc...
__Je n'ai pas tort et je n'ai pas raison__

Bon Coding.a+

Commentaire de BruNews le 26/01/2004 19:21:15 administrateur CS

mov byte ptr[edx], 0
n'est pas la pour ajouter une ligne, aucun rapport.
Ton code ne marche qu'1 SEULE fois, recommence sous le messagebox une boucle qui n'ecrirait que 10 octets pour tester.
Win32 attend des chaines de style C (terminateur NULL), ici tu l'as d'entree par init du segment data mais ne se produira pas ensuite.

Comme tu as 'raison' par decision unilaterale, j'eviterai donc de t'ennuyer avec code et/oui explications a l'avenir.

Commentaire de Vv20oX le 27/01/2004 13:51:11

Salut,Je vois ce que tu veux dire.Tu m'as mis sur le chemin de la
raison!
J'ai deja rencontré ce probleme pour generer un nom au hazard avec
une procedure..
Mais moi tant que le compilateur n'affiche pas d'erreur,c'bon,
Hors ce n'est surement pas comme ca que je vais m'ameliorer!
J'aurais du la mettre dans une procedure.
J'ai reglé le probleme maintenant regarde..

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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

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