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