Podobno w Biosie w lokacji pamieci 40H:6CH umieszczona jest zmienna zawierająca 32-bitowy licznik czasu, zwiekszany o 1 co okolo 55ms w trakcie pracy komputera. Próbuję wyświetlić tę zmienną w następujący sposób:
Rozkazy SEGMENT use16
Assume cs: Rozkazy
Dane SEGMENT
Dane ENDS
start:
;uruchomienie trybu txt
mov ah, 0
mov al, 3
int 10H
etla:
mov dl, byte ptr [40h]:[6ch]
add dl, 30h
call Wyswietl_DL
inc si
inc si
mov dl, byte ptr [40h]:[6ch-1]
add dl, 30h
call Wyswietl_DL
inc si
inc si
mov dl, byte ptr [40h]:[6ch-2]
add dl, 30h
call Wyswietl_DL
inc si
inc si
mov dl, byte ptr [40h]:[6ch-3]
add dl, 30h
call Wyswietl_DL
inc si
inc si
czek_enter:
mov ah, 8 ;czekaj na enter
int 21H ; wczytywanie znaku w kodzie ASCII z klawiatury
; do rejestru AL
cmp al, 13
je kontynuluj
jmp petla
kontynuluj:
mov ah, 4ch
int 21h
Wyswietl_DL PROC
mov es:[si+0], dL
mov es:[si+1], word ptr 07h
RET
Wyswietl_DL ENDP
Rozkazy ENDS
end start
po naciśnięciu czegokolwiek innego niż ENTER pętla się powtarza. Niestety na ekranie wyświetlają się same zera, nie rozumiem dlaczego - czy to ja źle coś robię czy może z tą zmienną jest coś nie tak?
Bardzio proszę o pomoc.
Pozdr.