项目作者: koerriva

项目描述 :
base AMD x86_64
高级语言: C
项目地址: git://github.com/koerriva/os.git
创建时间: 2017-05-27T11:33:59Z
项目社区:https://github.com/koerriva/os

开源协议:

下载


make iso

sudo apt install grub-pc-bin

c call nasm on Linux

  • 当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。
  • 当参数为 7 个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中。
    link

nasm call c on Linux

  • The first six integer or pointer arguments are passed in registers RDI, RSI, RDX, RCX, R8, and R9
    link

使用in和out指令对端口进行读写:

  • 和端口通信的数据只能用al和ax,8位数据用al,16位数据用ax,如果用其它寄存器会报错;

  • in用于从端口读数据,使用格式是:in al/ax, 端口号

  • out用于向端口写数据,使用格式时:out 端口号, al/ax

  • 其中端口号只能用立即数或者dx表示(dx用于存放端口号,端口号毕竟是16位的嘛),并且如果用寄存器表示端口号就必须用dx,用其它的就会报错;

vga 教程

  • Sets VGA-compatible video modes without using the BIOS
    link

  • link

multiboot 显示模式切换问题

  • 每一个tag需要按8字节对齐
    link

java bare metal os