写入影子记忆?

时间:2009-07-23 03:25:29

标签: memory dos

我想在实模式(DOS)中写F000:0000~FFFF:0000 但是这个区域是写保护的。

我试图找到CPU和北桥的数据表 但是,我找不到影子ram的写方法。

我的系统配置:
M / B:华硕P5B(965P芯片组)
CPU:Intel Pentium 4系列

BIOS:AMI


1 个答案:

答案 0 :(得分:0)

F000:0000~FFFF:0000是指在80286之后的所有处理器上指向HMA的内存范围。您可以在here上阅读更多内容。

要在没有HIMEM.SYS的情况下使用它,您应该执行以下操作:

  

您可以直接控制8042键盘控制器。使用命令   D1。写输出端口:写入端口60h的下一个字节放在   8042输出端口。

.286
                 mov     al,0d1h         ;send command to 8042
                 out     64h,al
 reloop:         in      al,64h          ;check that port 60h is available
                 or      al,02h
                 jnz     reloop
                 mov     al,11100011b    ;keep keyboard working and gate a20
                 out     60h,al
                 push    -1              ;set es=ffffh
                 pop     es
                 push    00h
                 pop     ds              ;set ds=0000h
                 mov     di,10h          ;check if it worked, compare
                 xor     si,si           ;ffff:0010h to 0000:0000 for 16 bytes
                 mov     cx,di           ;set cx to 10h
                 cld
                 rep     cmpsb           ;compare it
                 je      failed
                [...]                    ;worked, copy virus to ffff:xxxx
 failed:         jmp     short failed    ;do whatever