Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 452 fois - Téléchargée 29 fois
;CODE ASM COMPILE SOUS TASM 4.1 ;------------------------SEGMENT DE DONNEES------------------------- ;------------------------------------------------------------------- data segment public Hello db 'Hello world (version bios)',10,13,'$' data ends ;------------------------SEGMENT DE CODE---------------------------- ;------------------------------------------------------------------- code segment public assume cs:code, ds:data, ss:stack_s start: mov ax, data ;synchronise le segment de donnée data avec ds mov ds, ax mov dx, Offset Hello call afficher_chaine mov ax, 4C00h ;mets la fonction de sortie du programme(4C)+aucune erreur(00) int 21h ;sortie afficher_chaine: push ax ;on sauvegarde ax et si dans la pile push si mov si, dx ;on met l'@ du premier caractère de la chaine dans si boucle: mov ax, [si] ;on récupère le caractère courant cmp ax, '$' ;s'il sagit de $ je finboucle ;alors on arrête mov ah, 0Eh ;on mets la fonction affichage dans A (le caractère est déjà dans la partie basse) int 10h ;interruption bios pour afficher le caractère inc si ;on passe au caractère suivant jmp boucle ;on boucle finboucle: pop si ;on restaure les registres pop ax ret code ends ;-------------------------------------------------------------------- ;------------------------SEGMENT DE LA PILE-------------------------- ;-------------------------------------------------------------------- stack_s segment stack db 100h dup (?) ;déclare une pile de 256 octets stack_s ends ;-------------------------------------------------------------------- ;------------------------SAUT AU DEBUT DU PROGRAMME------------------ end start ;--------------------------------------------------------------------
2 août 2002 à 22:24
c'est une possibilité c vrai que ce serait sans doute un peu plus rapide( avec un rep movsb) mais je n'ai pas réfléchi si c vraiment faisable, il faudrait ne pas oublier que les caractères sont placés en mémoire de deux en deux, car il y a la couleur entre chaque caractère...
Interressant comme idée je vais essayer
C'était juste une idée ou tu est arrivé à le faire ?
1 août 2002 à 20:21
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.