mov eax, 80000054h
mov dx, 0CF8h
out dx, eax ; загнали адрес регистра DEVEN
mov dx, 0CFCh
in dx, eax ; получили содержимое регистра DEVEN
test eax, bit 28 ; проверили стоит ли MCHBAREN
jnz @@OK1
or eax, bit 28 ; если нет - поставили
push eax
mov eax, 80000054h ;
mov dx, 0CF8h ; возможно, второй раз загонять адрес и не надо
out dx, eax ;
pop eax ;
mov dx, 0CFCh
out dx, eax
@@OK1:
mov eax, 80000044h
mov dx, 0CF8h
out dx, eax
pop eax
mov dx, 0CFCh
in dx, eax ; в EAX - содержимое MCHBAR
and eax, 0FFFFC000h ; занулили младшие 14 бит на всякий случай
add eax, 114h
mov ebx, eax ; теперь в EBX просто адрес C0DRT1
mov eax, [ebx] ; теперь в EAX содержимое C0DRT1
;
; извращаем eax как хотим
;
mov [ebx], eax ; все, радуемся.
По-моему, так. (с) Винни-Пух
P.S. bit 28 - маску считай сам, мне лень.
По-моему, так. (с) Винни-Пух
P.S. bit 28 - маску считай сам, мне лень.