美文网首页
引导程序之函数调用

引导程序之函数调用

作者: louyang | 来源:发表于2020-06-06 00:01 被阅读0次

    为了函数调用,必须先把栈建起来。

    0x7c00 +-----------------+
           |                 |
           |    512字节      |
           .                 .
           .                 .
           .                 .
    0x7e00 | --------------- |  <- 栈底
           |                 |
           |                 |
           |                 |
           |                 |
           |      8k字节     |
           |                 |
           |                 |
           |                 |
           |-----------------|  <- %sp 栈顶
    

    代码 boot.s

    .code16
    .global init
    init:
      mov $0x07c0, %ax
      mov %ax, %ds
      mov $0x07e0, %ax
      mov %ax, %ss
      mov $0x2000, %sp
    
      mov $0x41, %al
      call print_char
      jmp .
    
    print_char:
      mov $0x0e, %ah
      int $0x10
      ret
    
    .=510
    .byte 0x55
    .byte 0xaa
    
    $ as -o boot.o boot.s
    $ ld -o boot.bin --oformat binary -e init boot.o
    

    boot.bin做为虚拟机的软盘,启动:

    image.png
    参考

    https://www.jianshu.com/p/b2c1d296a8a9

    相关文章

      网友评论

          本文标题:引导程序之函数调用

          本文链接:https://www.haomeiwen.com/subject/mloazhtx.html