继续分页,这次改了第一页的映射关系
加入的汇编代码:
_change_page: //第一页的地址被映射到第七页(自己是这样想的),所以修改0xc00的内容,即是修改了0x7c00的内容
mov $0x7007, %eax
mov $0x1000000, %edi
stosl
movl $0xfff000, %eax //更新页目录表
movl %eax, %cr3
ret
改动的主程序代码:
fillbox(0x001e90ff, 0, 0, 799, 599);
str = "又做了一些改动,把第一页映射到第七页,借用小米的一句话,\"永远相信美好的事情即将发生\"";
print_gb2312(0xffffffff, 0, 0, str);
print_gb2312(0xffffffff, 80, 80, addr0);
setup_page();
print_gb2312(0x00000000, 80, 160, addr0);
change_page();
print_gb2312(0x00ff0000, 80, 240, (char *)0xc00);
char *addr1 = (char *)0xc00;
*addr1 = 0xce; // 这是‘我’字的gb2312码值
*(addr1 + 1) = 0xd2;
print_gb2312(0x0000ff00, 80, 320, addr0);
print_gb2312(0xffffffff, 80, 400, addr1);