Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
EMISSION-RÉCEPTION DE CARACTÈRES PAR LIAISON SÉRIE SUR PC [TASM;PORT 3F8H-3FFH;IRQ4]
Description
Ce programme doit être exécuter sur le serveur. Un terminal doit être lancé sur le client à 9600 bits/s, 8 bits de données, 1 bit d'arrêt, aucune parité. Et entre deux, un câble série relié sur COM1. Pour compiler : TASM COMV2.ASM TLINK COMV2
Source
- .386
- code segment use16
- assume cs:code,ds:code
- prog:
- cli
- xor ax,ax
- mov fs,ax
-
- in al,21h ;démasque l'IRQ4
- and al,0EFh
- out 21h,al
-
- mov ax,cs ;détourne l'IRQ4
- shl eax,16
- mov ax,offset irq4
- mov fs:[0Ch*4],eax
-
- mov al,80h ;DLAB=1
- mov dx,3FBh
- out dx,al
-
- mov dx,3F8h ;9600 bits/s
- mov al,0Ch
- out dx,al
- xor al,al
- inc dx
- out dx,al
-
- mov dx,3FBh ;8 bits de données, 1 bit d'arrêt, aucune parité, DLAB=0
- mov al,03h
- out dx,al
-
- mov dx,3FCh ;active l'irq
- mov al,8
- out dx,al
-
- mov dx,3F9h ;active l'interruption en réception de données
- mov al,1
- out dx,al
-
- dec dx
-
- sti
- loop1:
- xor ax,ax
- int 16h
- out dx,al ;envoie un caractère
-
- cmp ah,01h ;quitte si la touche ESC est pressé
- jnz loop1
- mov ax,4C00h
- int 21h
-
- irq4: ;écrit le caractère reçu
- push ax
- push dx
- mov dx,3F8h ;lit un caractère du tampon de réception
- in al,dx
- mov ah,0Eh ;l'affiche à l'écran
- int 10h
- mov al,20h ;EOI
- out 20h,al
- pop dx
- pop ax
- iret
-
- code ends
- end prog
.386
code segment use16
assume cs:code,ds:code
prog:
cli
xor ax,ax
mov fs,ax
in al,21h ;démasque l'IRQ4
and al,0EFh
out 21h,al
mov ax,cs ;détourne l'IRQ4
shl eax,16
mov ax,offset irq4
mov fs:[0Ch*4],eax
mov al,80h ;DLAB=1
mov dx,3FBh
out dx,al
mov dx,3F8h ;9600 bits/s
mov al,0Ch
out dx,al
xor al,al
inc dx
out dx,al
mov dx,3FBh ;8 bits de données, 1 bit d'arrêt, aucune parité, DLAB=0
mov al,03h
out dx,al
mov dx,3FCh ;active l'irq
mov al,8
out dx,al
mov dx,3F9h ;active l'interruption en réception de données
mov al,1
out dx,al
dec dx
sti
loop1:
xor ax,ax
int 16h
out dx,al ;envoie un caractère
cmp ah,01h ;quitte si la touche ESC est pressé
jnz loop1
mov ax,4C00h
int 21h
irq4: ;écrit le caractère reçu
push ax
push dx
mov dx,3F8h ;lit un caractère du tampon de réception
in al,dx
mov ah,0Eh ;l'affiche à l'écran
int 10h
mov al,20h ;EOI
out 20h,al
pop dx
pop ax
iret
code ends
end prog
Conclusion
Mis à jour pour l'emission de caractères, je n'ai pas jugé utile d'en faire une nouvelle source vu que seulement quelques lignes sont à ajouter.
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Sources du même auteur
-
STÉGANOGRAPHIE V.2[TASM;INT 21H;COM]
-
BLOCAGE DU CLAVIER TANT QUE LE MOT DE PASSE N'A PAS ÉTÉ TROUVÉ [TASM, PORT 60H-64H]
-
CHARGER UN JEU DE CARACTÈRE DÉFINI [TASM, INT10H, INT21H]
-
AFFICHER UNE IMAGE BMP EN VESA 1.2 [TASM, PORT (3C8H,3C9H), BMP, VESA 1.2, INT21H]
-
JOUER DU PIANO[TASM, PORT 388H, 389H, CF:CODE DU HP]
Sources de la même categorie
Commentaires
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
|