Chinaunix首页 | 论坛 | 博客
  • 博客访问: 372374
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-24 16:18
个人简介

为啥不能追求自己的爱好一辈子呢

文章分类

全部博文(80)

文章存档

2017年(1)

2015年(2)

2014年(18)

2013年(59)

分类: C/C++

2013-01-29 15:04:14

    这样还不行,只是写了一个loader,在img镜像里面,还没有自己的程序,所以我们随便写一个文件就叫haribote.sys吧,用WinImage注入进去,我们用二进制编辑器,打开这个img镜像,找找我们的文件在那个位置,可以看到咋0x2600的地方有文件名字,0x4200的地方有文件内容(可以用二进制打开器打开文件,对比两个文件内容),所以我们可以知道我们的程序会被加载到的地址喽,应该是 0x8000+0x4200=0xc200;ok大功告成
注意: 如果用linux dd的方式可能略有不同,这里的地址是0x8200,不需要加上0x4200。

   我们就可以这样写啦

点击(此处)折叠或打开

  1. ; haribote-os
  2. ; TAB=4
  3.   ORG 0xc200 ;
  4.   MOV AL,0x13 ; 320x200x8bit
  5.   MOV AH,0x00
  6.   INT 0x10
  7. fin:
  8.   HLT
  9.   JMP fin

我们调用了VGA的320*200*8bit的video模式,请参照 的关于vga编程的内容

然后我们把它保存成haribote.asm,

  nasm -o haribote.sys haribote.asm

然后把harbote.sys通过WinImage加入到我们的img虚拟光驱中。用virtualbox运行之。

图形模式和text模式的很大的区别是图形模式没有光标,如果光标消失 ,则是正确的,恭喜你。

阅读(1796) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~