操作系统
朝向高处的旅途
0101
展开
-
01day
30天自制操作系统原创 2016-01-09 21:48:43 · 339 阅读 · 0 评论 -
保护模式编程初始化
8086可以工作在几种模式下,当机器上电或者硬件复位时,处理器工作在8086处理器兼容的实地址模式下,并且物理地址从0XFFFFFFF0处开始执行软件初始化代码。 软件初始化代码必须设置基本系统功能操作必要的数据结构信息,例如处理中断和异常的实模式IDT表。 a. 如果处理器依然工作在实模式下,软件必须加载操作系统模块和相应的数据允许应用程序在实模式下可靠的运行。 b.如果处理器工作在保护模式原创 2016-01-13 19:45:58 · 594 阅读 · 0 评论 -
08day 鼠标显示控制 与32位模式切换
鼠标显示控制 与有关规定关系更大通往32位模式之路; haribote-os boot asm; TAB=4BOTPAK EQU 0x00280000 ; bootpack偺儘乕僪愭DSKCAC EQU 0x00100000 ; 僨傿僗僋僉儍僢僔儏偺応強DSKCAC0 EQU 0x00008000 ; 僨傿僗僋僉儍僢僔儏偺応強乮儕傾儖原创 2016-01-11 15:18:12 · 720 阅读 · 0 评论 -
07day FIFO与接受鼠标控制信息
我们完善一下键盘中断处理,按下一个键,就把所按键的编码在画面显示出来,这样就可以切实完成中断处理程序了。{ struct BOOTINFO *binfo = (struct BOOTINFO *) ADR_BOOTINFO; unsigned char data, s[4]; io_out8(PIC0_OCW2, 0x61); /* 通知PIC*IRQ-01已经处理完毕原创 2016-01-11 14:40:24 · 541 阅读 · 0 评论 -
06day 分割编译与中断处理
分割编译: 1.将不同功能的实现写到不同的c文件中 2.修Makefile普通规则为一般规则 %.gas : %.c Makefile $(CC1) -o $*.gas $*.c%.nas : %.gas Makefile $(GAS2NASK) $*.gas $*.nas%.obj : %.nas Makefile $(NASK) $*.nas $*.obj $*.l原创 2016-01-11 13:42:24 · 483 阅读 · 0 评论 -
05day 文字显示 GDT/IDT初始化
我们想向屏幕上输出ABC 123void HariMain(void){ struct BOOTINFO *binfo = (struct BOOTINFO *) 0x0ff0; extern char hankaku[4096]; init_palette(); init_screen(binfo->vram, binfo->scrnx, binfo->scrny)原创 2016-01-10 21:03:32 · 612 阅读 · 0 评论 -
04day C语言与画面显示的练习
为了向VRAM里写入一些东西显示出来,所以需要写一个有写入内存功能的函数._write_mem8: ; void write_mem8(int addr, int data); MOV ECX,[ESP+4] ; [ESP+4] MOV AL,[ESP+8] ; [ESP+8] MOV [ECX],AL原创 2016-01-10 20:14:44 · 865 阅读 · 0 评论 -
03day 进入32位模式并导入C语言
从启动区执行操作系统ipl:; haribote-ipl; TAB=4CYLS EQU 10 ; ORG 0x7c00 ; 我们将磁盘映像的启示512字节加载到Boot Sector Entry中; JMP entry DB 0x90 DB原创 2016-01-10 14:47:43 · 831 阅读 · 0 评论 -
02day
02day/helloos3; hello-os; TAB=4 ORG 0x7c00 ;指明程序的装载基址 JMP entry;跳到code入口处 DB 0x90 DB "HELLOIPL" ; DW 512 ;原创 2016-01-09 21:57:13 · 552 阅读 · 0 评论 -
定位kernel32.dll
此方法是通过TEB获得PEB结构地址,然后再获得PEB_LDR_DATA结构地址,然后遍历模块列表,查找kernel32.dll模块的基地址。windbg启动目标程序0:000> !tebTEB at 7ffdf000 ExceptionList: 0012fb40 StackBase: 00130000 StackLimit:原创 2016-02-13 10:18:02 · 1686 阅读 · 0 评论