我想在实模式(DOS)中写F000:0000~FFFF:0000 但是这个区域是写保护的。
我试图找到CPU和北桥的数据表 但是,我找不到影子ram的写方法。
我的系统配置:
M / B:华硕P5B(965P芯片组)
CPU:Intel Pentium 4系列
答案 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