Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
; Afficher l'état des leds 
; Leds Scroll, num, cap --> 40h:17h (bits 4,5 et 6) 
 
pile segment stack 
    dw  100h dup(?) 
pile ends 
 
data segment 
	Scroll db 'SCROLL ... : $'
	Num    db 'NUM    ... : $'
	Caps   db 'CAPS   ... : $'
	Aff    dw Scroll, Num, Caps  ; offsets des chaines de caractères
	val    db 10h, 20h, 40h	     ; valeurs à utiliser pour identifier les bits
	on     db 'ON', 10,13,'$'
	off    db 'OFF', 10,13,'$'
data ends
 
code segment 
     assume cs:code, ds:data
 
affiche proc 
	mov dx,word ptr [di]
	mov ah,09h
	int 21h
 
	test bl, byte ptr [si]
	jz _2off
        lea dx, on
	jmp affmsg
_2off:  lea dx,off
affmsg: mov ah,09
	int 21h
 
	ret
affiche endp
 
debut:  mov ax, data ; necessaire pour afficher une chaine de caractères
        mov ds,ax 
 
        mov ax, 40h 
        mov es, ax 
 
	mov bl, es:[17h] ;Lecture de l'état des LEDS
	lea di, aff
	lea si, val
	mov cx,3
etq:    call affiche
        add di,2
	inc si 
	loop etq 
 
        mov ah, 4ch ; Terminer le programme 
        int 21h
 
code    ends 
	end debut