不管怎么说,造一个独立于库的程序总是开心的。如果你也像我一样这么认为的话。虽然它不能做任何实际的事情,只是作为占据软盘启动扇区的一个小东西,在被bios加载后打印出“hello world”而已。

这个小东西是从2.6版本的linux内核参考来了。具体文件是/arch/i386/boot/bootsect.S。虽然改动没有什么技术含量,但是毕竟是我找来的呀。

见过网上类似的东西,但是它们的编译好像要用到as86,ld86或者nasm,乃至dos下面的masm。我的fedora core 4没有,要下。这样就麻烦了。现在我的这个有gcc,objcopy,make就可以了,这三个我的系统装好就有的。比较方便。自豪的说^_^

一共两个文件:
bootsect.S:

BOOTSEG = 0x07C0
.code16
.text
.global _start
_start:
jmpl    $BOOTSEG, $start2
start2:
movw    %cs, %ax
movw    %ax, %ds
movw    %ax, %es
movw    %ax, %ss
movw    $0x7c00, %sp
sti
cld
movw    $msg, %si
msg_loop:
lodsb
andb    %al,%al
jz      start2
movb    $0xe, %ah
movw    $7, %bx
int     $0x10
jmp     msg_loop
msg:
.ascii "hello world/r/n"
.byte   0
.org 510
.word 0xAA55

makefile:

all: bootsect
bootsect:       bootsect.o
        objcopy -O binary bootsect.o bootsect
        dd if=bootsect of=/dev/fd0
bootsect.o:     bootsect.S
        gcc -c bootsect.S
clean:  
        rm bootsect.o
        rm bootsect

Code for fun. Aimed nothing.相关推荐

  1. Google VP8 Code 首次深入技术分析 1

    The first in-depth technical analysis of VP8 首次深入技术分析 Back in my original post about Internet video, ...

  2. java net unicode / native2ascii / url decode / url encode / UTF8 / js url code

    s http://chengyue2007.iteye.com/blog/1852095 java中URL 的编码和解码函数 java.net.URLEncoder.encode(String s)和 ...

  3. Visual Studio Code和Visual Studio有什么区别?

    本文翻译自:What are the differences between Visual Studio Code and Visual Studio? 微软最近发布了Visual Studio Co ...

  4. 如何在团队中做好Code Review

    一.Code Review的好处 想要做好Code Review,必须让参与的工程师充分认识到Code Review的好处 1.互相学习,彼此成就 无论是高手云集的架构师团队,还是以CURD为主的业务 ...

  5. Pyinstaller 打包 torch 后执行失败 OSError: could not get source code

    1. 问题现象 系统环境 Python 3.6.9 torch 1.2.0 torchvision 0.4.0 Pyinstaller 4.5.1 Pyinstaller 打包 torch 后执行失败 ...

  6. VS Code 安装 Go 插件、自定义扩展配置、断点调试

    1. 安装插件 使用快捷键 Ctrl+Shift+X 打开插件安装页面,安装 Go 插件. 2. 自定义扩展配置 使用快捷键 Ctrl+, 打开自定义配置页,编辑 settings.json ,定义与 ...

  7. VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、

    1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...

  8. VS Code 安装插件、自定义模板、自定义配置参数、自定义主题、配置参数说明、常用的扩展插件

    1. 下载和官网教程 下载地址:https://code.visualstudio.com/ 官方教程:https://code.visualstudio.com/docs 2. 安装插件 安装扩展插 ...

  9. VS Code 离线安装插件方法

    本文以离线安装 C/C++ 插件为例进说明,其它语言的插件的离线安装方法类似. 离线安装 C/C++ 插件相对比较麻烦一些,主要是因为 C/C++ 插件还依赖其他需要在线下载的组件: C/C++ la ...

最新文章

  1. 进化计算在深度学习中的应用 | 附多篇论文解读
  2. 【Windows】Windows10基于VMware安装CentOS7的全面教程
  3. 【蓝桥杯单片机】独立按键和矩阵按键
  4. 3月19日发布!vivo X27配置揭晓:搭载骁龙710处理器
  5. python中ta_非常详细的Ta-Lib安装及使用教程
  6. PHP截取中文字符串的方法
  7. antd如何获取表单的值_Antd如何通过父组件直接获取子组件内表单值
  8. visio 2016的使用
  9. 软件项目运维内容 软件系统运维工作内容
  10. 显著性检验 python p值_python相关性分析与p值检验
  11. Xilinx ZYNQ Ultrascale+ 性能测试之 Video Multi Scaler (Linux篇)
  12. D5 登录抽屉新热榜
  13. onkeyup+onafterpaste 只能输入数字和小数点
  14. 积分兑换系统怎样设置“新花样”?
  15. 教你快速给多段视频添加同一个片尾和转场特效
  16. 关于实现联系人中英文名排序的问题
  17. 开关电源电路图及原理详解
  18. 【js课设】电子画板01
  19. win10桌面图标消失解决+软件快捷方式重建+显示所有电脑应用
  20. 视频教程-FPS游戏逆向与安全+UE4引擎基础详解-其他

热门文章

  1. AI RoboForm 7.3.2发布[附pro破解方法]
  2. Linux命令学习一
  3. 百度网盘PC端扫描二维码登录时无法加载二维码问题解决方法
  4. L1-005 考试座位号 (15 分)变量要设置对
  5. 好嗨呦是谁_抖音好嗨哟原版 《好嗨哟》原唱是谁怎么火起来的
  6. Teamcenter Folder
  7. Java项目:SSM实现的一个在线文具学习用品购买商城网站
  8. 免费抠图神器!五秒在线搞定抠图
  9. Python 同时插入两张图片在同一页PPT,并循环多张图片
  10. 计算机屏幕最小值,虚拟内存最大值最小值如何设置好?