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

引导程序之函数调用

作者: 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

相关文章

  • 引导程序之函数调用

    为了函数调用,必须先把栈建起来。 代码 boot.s: 把boot.bin做为虚拟机的软盘,启动: 参考 http...

  • 回调函数

    普通函数与回调函数主要是在调用方式上有区别: 1、对普通函数的调用:调用程序发出对普通函数的调用后,程序执行立即转...

  • 21.程序的开始和结束

    main函数由谁调用 (1)编译链接时的引导代码。操作系统下的应用程序其实在main执行前也需要先执行一段引导代码...

  • python函数进阶

    函数 主程序调用函数时,必须保证这个函数此前已经定义过,即被调函数的实现要在调用函数之前: 但在函数内部调用其他函...

  • 六月六号

    PHP函数之判断函数是否存在 当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经...

  • iOS知识点集合

    iOS程序运行流程 系统调用app的main函数 main函数调用UIApplicationMain. UIApp...

  • iOS开发知识储备

    iOS程序运行流程 系统调用app的main函数 main函数调用UIApplicationMain. UIApp...

  • 2019-03-07

    main(主函数,主程序中主要函数,唯一性) printf(输出函数,程序中可调用函数) scanf(输入函数) ...

  • 06.c语言之函数

    一、什么是函数 二、函数的定义 三、程序调用

  • c++入门 - 内联函数、#pragma once

    内联函数 函数的调用 执行到函数调用指令时,程序将在函数在调用后立即存储该指令的内存地址,并将函数参数复制到堆栈(...

网友评论

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

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