mov eax, 80000054h mov dx, 0CF8h out dx, eax

	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 - маску считай сам, мне лень.