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 / Exemple :


.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.

Codes Sources

A voir également

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.