对于计算机体系结构项目,我想编写一些可引导的代码来做一些简单的事情(我想过一个蛇游戏,如果那不是太复杂的话)。我认为编写一个小型引导加载程序来将控制权传递给C程序应该不会太难,但我找不到任何准确的信息。
我正在寻找一些正确描述保护模式的x86程序集的高级指南(我仍然无法判断我是否需要切换到它,我的第一直觉是我没有),计算机如何启动,阅读从键盘和打印到屏幕。
我可以在汇编中编写并传递gcc来编写小程序,我只需要启动和接口信息。任何信息都很受欢迎,包括书籍。
答案 0 :(得分:3)
我会推荐this网站。你会发现(特别是在“简介”类别中)你需要知道的一切。
除非您切换到保护模式,否则您可以使用BIOS中断来打印到屏幕,从键盘读取等。例如interrupt 0x10, function 0x0e。如果要使用其他程序,除了引导加载程序之外,您还需要手动将其加载到内存中。有用于从硬盘(或模拟硬盘的pendrive)读取的BIOS功能,但您必须自己处理文件系统。也许,在您的情况下,最好的解决方案是不使用任何解决方案,只需将其他程序写入固定地址,然后使引导加载程序从该硬编码位置加载它。
此外,如果要在实模式下执行使用gcc编译的代码,则需要使用.code16gcc
指令。它将使气体代码能够在32位机器上以16位实模式执行。
答案 1 :(得分:2)
Here是一段时间前发现的链接,我觉得它很有意思,所以我把它添加到我的收藏中......也许会有所帮助。