Affichage d'une chaine de caractères en assembleur, int 21h fonction fonction 40h
Fixe la position du curseur sur l'ecran avec l'interruption bios int 10h fonction ah=02h
Efface l'ecran ou une partie ah=06h de l'interruption bios int 10h
Les outils utilsés:
Microsoft Macro assembler ver 4.0;
Editeur de lien link.exe
exe2bin.exe pour la production des fichiers .com (fichier executable très petit et très rapide, on verra l'explication)
Le fichiers batch de compilation et de l'edition de liens : mmakke.bat
DEL %1.COM
MASM %1;
LINK %1;
EXE2BIN %1.EXE %1.COM
DEL %1.EXE
DEL %1.OBJ
Comment je développe ?
Je crée un répertoire dans le disque, exemple c:\amstest
Je mets dedans le compilateur masm.exe (Microsoft macro assembler), un editeur de lien link.exe , le fichier batch mmakke.bat et les fichiers sources .asm .
Pour la simplicité on va utiliser le même répertoire pour stocker nos résultats (fichier objet et executable).
Je crée avec un éditeur de text (edit.com) un fichier source et je l'enregistre avec une extension .asm, exemple ecran.asm.
Je tape mmakke ecran
Après complilation et édition de lien le fichier executable ecran.com est créé.
Cycle de développement, créer ou modifier, compilation et édition de lien. Si le résultat est bon c'est la fin. Sinon on recommence.
fichier source : ecran.asm
CODE SEGMENT PARA 'code'
ASSUME CS:CODE,DS:CODE,SS:CODE,ES:NOTHING
ORG 100H
DEBUT1: JMP SHORT DEBUT2
NOM DB 'RAKIB NAJIB'
LONG DW 11
LIGNE DB 10
COLONNE DB 30
DEBUT2 PROC NEAR
;- effacer ecran -------------------------------
CALL EF_ECRAN
;- position le curseur ------------------------------
CALL POS_CURSEUR
;- affiche le message -------------------------------
CALL SOR_NOM
RET
DEBUT2 ENDP
;- routine effacer ecran -------------------------------
;- utilisation de l interruption ecran int 10h pour effacer ecran
EF_ECRAN PROC
MOV AH,06
MOV AL,00
MOV BH,07
MOV CX,0000
MOV DX,184FH
INT 10H
RET
EF_ECRAN ENDP
;- routine position curseur à une position donnée de l ecran ligne et colonne
;- utilisation de l interruption ecran int 10h pour positionner le curseur sur ecran
POS_CURSEUR PROC
MOV AH,02
MOV BH,00
MOV DH,LIGNE
MOV DL,COLONNE
INT 10H
RET
POS_CURSEUR ENDP
;- routine d'affichage d'une chaine de caratères avec l intrruption int 21h fonction ah=40h
;- utilisation de l'interruption ms-dos int 21h pour afficher un texte
SOR_NOM PROC
MOV AH,40H
MOV BX,01
MOV CX,LONG
LEA DX,NOM
INT 21H
RET
SOR_NOM ENDP
CODE ENDS
END DEBUT1