Автор: wiki.rom.by , 12 февраля 2008
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Материал из Wiki.



Имеет несколько стандартных портов:

70h - регистр адреса

71h - регистр данных

И еще несколько..










Read_CMOS  proc          
out 70h, al  ; CMOS Memory:
 ; used by real-time clock
jcxz $+2  ; Jump if CX is 0
jcxz $+2  ; Jump if CX is 0
in al, 71h  ; CMOS Memory
jcxz $+2  ; Jump if CX is 0
jcxz $+2  ; Jump if CX is 0
retn  ; Return from Procedure
Read_CMOS endp


Write_CMOS  proc          
out 70h, al  ; CMOS Memory:
 ; used by real-time clock
jcxz $+2  ; Jump if CX is 0
jcxz $+2  ; Jump if CX is 0
out 71h, ah  ; CMOS Memory
jcxz $+2  ; Jump if CX is 0
jcxz $+2  ; Jump if CX is 0
retn  ; Return from Procedure
Write_CMOS endp


Оператор jcxz $+2 организует программную задержку в несколько миллисекунд для корректного чтения/записи CMOS.

С такой же целью могут быть вставлены операторы mov ax, ax или out EBh, ax.


Ещё одно замечание: часто можно видеть что-то типа:








mov al, 8Fh

out 70h, al ; CMOS Memory:

; used by real-time clock

jcxz $+2 ; Jump if CX is 0

jcxz $+2 ; Jump if CX is 0

in al, 71h ; CMOS Memory

jcxz $+2 ; Jump if CX is 0

jcxz $+2 ; Jump if CX is 0

retn ; Return from Procedure



Это не есть чтение ячейки 8Fh. Это есть чтение ячейки 0Fh но с установленным битом запрещения прерывания NMI (седьмой бит).