Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 245 fois - Téléchargée 30 fois
;------------------------SEGMENT DE DONNEES------------------------- ;------------------------------------------------------------------- _data segment public hex db '0123456789ABCDEF' _data ends ;------------------------SEGMENT DE CODE---------------------------- ;------------------------------------------------------------------- _code segment public assume cs:_code, ss:_stack START: mov ax, _data ;synchronise les segments data et ds mov ds, ax mov ax, 123Fh ;on choisit une valeur à afficher par exemple 123Fh call AFFICHER_AX ;on appelle la procédure d'affichage de AX mov ax, 4C00h ;fonction de fin du prog correcte int 21h ;int 21h (retour au dos) AFFICHER_AX: push ax xchg ah, al ;on échange ah et al call AFFICHER_AL;de cette manière on affiche ah xchg ah, al ;on rééchange ah et al call AFFICHER_AL;pour afficher al pop ax ret AFFICHER_AL: push si bx ax ;(ax doit être tout en bas de la pile) mov si, ax ;(dans le registre SegmentIndex on mets ax soit 12h) shr si, 4 ;(on décale de 4bits pour ne garder que x1h) and si, 0Fh ;on se débarrasse du 1er quartet il reste 01h add si, Offset hex ;on additionne à 01h l'@ de la chaine on obtient l'@ de '1' mov al, [ds:[si]] ;on récupère le '1' dans al mov ah, 0Eh ;on prépare l'affichage avec la fonction OE du bios int 10h ;on affiche pop ax ;on restaure ax push ax ;et on le rebalance dans la pile mov si, ax ;on recommence avec ax and si, 0Fh ;mais cette fois plus décalage(on s'occupe du 2e octet) add si, Offset hex mov al, [ds:[si]] mov ah, 0Eh int 10h pop ax bx si ;on restaure les registres ret _code ends ;-------------------------------------------------------------------- ;------------------------SEGMENT DE LA PILE-------------------------- ;-------------------------------------------------------------------- _stack segment stack db 100h dup (?) ;déclare une pile de 256 octets _stack ends ;-------------------------------------------------------------------- ;------------------------SAUT AU DEBUT DU PROGRAMME------------------ end START ;--------------------------------------------------------------------
1 janv. 2003 à 01:06
Ce sera avec plaisir que je jetterais un coup d'oeil à ta façon de procéder ;-)
à la prochaine
31 déc. 2002 à 15:39
J'essaierrai d'en poster un exemple.
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.