改了一下Makefile,可以看到编译命令了(很简单,把变量V定义成空就可以了。。。)
这个project很简单,就是把cpu内存初始化一下,然后直接端口IO的方式在屏幕上打印helloworld。
看了bootasm.S和bootmain.c,他们主要做这些事儿:
先看bootmain.c,就是通过in/out指令,把helloworld在屏幕上打印出来。打印的入口函数式bootmain,由bootasm.S中的汇编代码跳入。
bootasm.S中的代码首先从0x7C00开始执行,此时bios刚刚自检完,将启动盘的第一个扇区(512字节)拷贝到0x7C00处,就是本代码,然后开始执行。此时cpu还处于real mode状态。这段代码要做的事儿,就是首先清中断、清方向,然后把A20地址线激活,切换到protected mode。在protected mode中设置好各个段寄存器和esp寄存器后,跳转到bootmain。
编译这两个文件与gcc编译其他文件类似,但链接时有一点点不同:通过-Ttext 7C00指定代码段的开始地址。
代码很简单,明天把这些代码重新写一遍,多试试,熟悉一下。
PS:刚刚在弯曲评论看了陈首席怀临,居然在去年来了华为,不知道他老人间现在是否仍在华为?微博上加了,刚刚看到给华为朱波会了一条微博,看样子应该还在华为美研所?
再PS:搜索陈怀临消息的时候,才知道很多大牛都来了华为,看来华为还是有希望的:)
分享到:
相关推荐
本篇文章将围绕"spring-boot-api-project-seed-master.zip"这个压缩包文件,深入探讨Spring Boot的核心特性、API设计原则以及如何通过这个项目种子进行实战演练。 1. **Spring Boot概述** Spring Boot是由Pivotal ...
hive 开发UDF 使用maven工程 引发jar包缺失 hive 开发UDF 使用maven工程 引发jar包缺失
spring-boot-starters-project组件功能描述案例message-spring-boot-starter事务消息(基于数据库)-change-log-spring-boot-starter实体变更日志(基于数据库)-validation-spring-boot-starter校验能力(薄封装)-web-...
Version : 5.7 Vendor : Fedora Project Release : 2.20090207.fc11 Date : 2009-02-26 09:37:30 Group : Development/Libraries Source RPM : ncurses-5.7-2.20090207.fc11.src.rpm Size : 1.71 MB Packager :...
在这个压缩包文件"shoping-project.zip"中,主要包含的是"shoping-project-master"目录,这是项目的源代码仓库。 1. **项目结构**: - `shoping-project-master`:项目主目录,通常包含项目的所有源代码、配置文件...
spring-boot-project依赖根 spring-boot-first-application-sample演示模块 spring-boot-configuration-sample配置模块 spring-boot-import-sample导入实现模块 spring-boot-alias-annotation-sample注解属性别名...
Root project 'Almost-Famous' +--- Project ':famous-cloud' +--- Project ':famous-config' \--- Project ':famous-unique' +--- Project ':famous-common' +--- Project ':famous-login' +--- Project ':famous-...
gEDA homepage: http://www.geda-project.org -----gschem.exe 1.9.2 (g9e1f72c) -----pcb.exe Compile Time Options ----- GUI: gtk : Gtk - The Gimp Toolkit Exporters: bom : Exports a Bill of Materials ...
简介Spring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注...
431-Project1:RIT CSCI 431
:gear: 自行设定# Clone repo$ git clone https://github.com/marcorichetta/cs50-project1.git$ cd cs50-project1# Create a virtualenv (Optional but reccomended)$ python3 -m venv myvirtualenv# Activate the...
2006-03-11 15:26 122,880 关键路径分析.mpp 2005-10-06 00:21 339,456 固定资产信息系统项目.mpp 2005-11-17 16:56 622,592 固定资产信息系统项目.多比较基准.mpp 2005-11-17 16:56 637,440 固定资产信息系统项目....
midterm-project-aagamsh1:GitHub Classroom创建的midterm-project-aagamsh1
在 SpringBoot 源码解析中,我们可以看到,源码模块主要分为两个部分:spring-boot-project 和 spring-boot-tests。其中,spring-boot-project 是源码模块,而 spring-boot-tests 是一些测试的子模块。 spring-boot...
spring-boot-project:Java Spring Boot项目实施
WebUml-ProjectManager WebUml项目管理器后端。 职责: 用于元模型和表示模型元素的CRUD 要求: GIT 1.9( ) Java 8( ) Maven 3.0.5( ) heroku-toolbelt 3.6.0( ) MongoDB的 推荐工具: jq( ) 在...
1. **后端(Spring Boot)**:通常包含`src/main/java`目录下的`main`应用入口,`Application.java`是启动类。`pom.xml`文件定义了项目的依赖,包括Spring Boot的相关模块(如web、data、security等),以及数据库连接...
Spring Boot Project使使用Dubbo作为RPC框架轻松创建应用程序。 此外,它还提供: (例如,注释驱动,自动配置,外部化配置)。 (例如,安全性,运行状况检查,外部化配置)。 Apache Dubbo | ˈdʌbəʊ | 是...
Spring Boot API Project Seed 是一个基于Spring Boot & MyBatis的种子项目,用于快速构建中小型API、RESTful API项目,该种子项目已经有过多个真实项目的实践,稳定、简单、快速,使我们摆脱那些重复劳动,专注于...
Lesson 1 - Why should you learn how to program? Lesson 2 - Basic principles of learning a programming language UNIT 1 - VARIABLES, TYPES, EXPRESSIONS, AND STATEMENTS Lesson 3 - Introducing Python: a ...