tiny-os
tiny-os copied to clipboard
《操作系统真象还原》一书实现的系统代码
您好! 书中第87页,没有告诉如何把call.bin放到0x900 处? 麻烦给个简单的方法.谢谢!
在第五章加载内核时,读盘的函数 read_disk_m_32 ,小弟在学习大佬代码的时候发现在调用返回时 call read_disk_m_32 压入的返回地址老是被覆盖为 0x0000!造成 ret 指令回跳错误 最后发现是调用时用 ebx 存着目标缓冲区地址,但 .go_on_head 的还是用了 bx,所以 32 位的 ebx 被丢弃了高 16 位,在 cx 循环时刚好[bx] 覆盖了栈对应的内存区域
https://github.com/seaswalker/tiny-os/blob/35de8ba563cb243438b27cdb6a404de7a1ecf5e0/chapter4/include/boot.inc#L19 大佬你好,想请问下,我看你说把这里改成 DESC_LIMIT_VIDEO2 equ 0000_000000000000000b 就能显示 P,我这么改了但是不太行,我这里就显示了一个闪烁的 1 MBR,也没有最下面的 “2 loader in real”。 但是我发现我把 "loader.S" 中的 “times 60 dq 0” 这一行的 60 改成循环 47(或小于 47) 的话,就都没问题了,而且也不用该那个 DESC_LIMIT_VIDEO2。不知道大佬对这个问题有啥想法么?
前面的一段0可以去掉, 这样更与前面的格式相一致. 本处确实结尾为 b 与 `loader.S` 的 `VIDEO_DESC: dd 0x80000007` 相呼应 构成显卡适配器存储基地址: 0xb8000
10 11 13章节 没有 build.sh
如题,chapter5中的mbr.asm中,显示mba而不是mbr