HELP~~~~~~~~~怎么能让我的程序启动时执行啊?

NuclearG 2004-02-02 07:27:48
不是在WINDOWS启动之后执行,而是代替WINDOWS执行,就是启动时让它显示配置表后直接显示“Starting My own OS..."
听人说要放在启动扇区里,那怎么放啊,有什么格式上的需要吗?还有,我应该用什么语言来写这段代码啊(如果只有汇编能达到这项功能那我再打听一下应该用什么编译程序啊,MASM?MASM32?TASM?!@#$?%^&*?...?)

先预祝元宵节快乐!多谢
...全文
34 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingxing 2004-02-02
  • 打赏
  • 举报
回复
需要通过直接写扇区来实现。
chngok 2004-02-02
  • 打赏
  • 举报
回复
我也想知道
xrdsheng 2004-02-02
  • 打赏
  • 举报
回复
还有就是更改c:\boot.ini和c:\config.sys文件
dennis1215 2004-02-02
  • 打赏
  • 举报
回复
把绝对路径写在c:\AUTOEXEC.BAT里.
jack_wq 2004-02-02
  • 打赏
  • 举报
回复
三楼好强!
paulxj 2004-02-02
  • 打赏
  • 举报
回复
将程序放到开始—〉启动里试试看
guolisen 2004-02-02
  • 打赏
  • 举报
回复
用nasm就行http://www.cnidp.bak.cn/有相关的教程。
启动时执行很简单,你需要知道电脑启动的相关知识,启动后bios将磁盘0磁头0磁道1扇区的
512字节复制到0000:7c00开始的位置,并跳转到0000:7c00执行,你只要将程序放到磁盘0磁头0磁道1扇区就可以了(用biosdisk()函数),注意:(1)引导程序不要超过512B
(2)512字节的最后两个字节必须是 AA 55.
(3)只能用bios中断。
;------------------------------------------
编译方法:nasm 原文件名 -o 目标文件名 <回车>
;------------------------------------------
bits 16 ;仅使用16位指令,不涉及32位指令

org 0h

BOOTSEG EQU 0x07c0

jmp short start ;跳转到真正的指令处
nop

display: ; SI = 要显示的字符串的首地址
lodsb ;从DS:SI装载一个字符到AL
or al,al ;判断al是否为0
jz .enddisplay
mov ah,0x0E ;
mov bx,0x0007
int 0x10
jmp display ;一个字符一个字符的显示
.enddisplay:
ret

start:
cli
mov ax,BOOTSEG
mov ds,ax
mov si,loadmsg
call display
hlt


;-------------------------------------------------------
loadmsg db "Starting My own OS...",0x0A,0x0D,0
;-------------------------------------------------------

times 512-($-$$)-2 db 0 ;保证boot区有512个字节
dw 0AA55h

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧