简单的自启操作系统

shinoki225 2008-10-28 09:28:48
; 自启程序文件(boot.asm)

org 07c00h
mov ax,cs
mov ds,ax
mov es,ax
call DispStr
jmp $
DispStr:
mov ax,BootMessage
mov bp,ax
mov cx,16
mov ax,01301h
mov bx,000ch
mov dl,0
int 10h
ret
BootMessage: db "Hello, OS World!"
times 510-($-$$) db 0
dw 0xaa55

要怎么改写一下自启程序——那个"Hello, OS World!"可以不要了——添加个简单的菜单选项,按键盘输入1、2来执行各自的程序?
1和2可以很简单的输出一个单词就行了
有谁能教教我吗?
...全文
160 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kandu_ 2008-11-02
  • 打赏
  • 举报
回复
静下心了看看书,再多学点再弄这个。
kandu_ 2008-11-02
  • 打赏
  • 举报
回复
你太急躁了。
zhizhi_2008 2008-11-02
  • 打赏
  • 举报
回复
。。那肯定没反应了,那响应按键的代码都在那BOOTSECTOR里,现在都在1程序里了,如果1程序里没有响应按键的代码,当然就不会响应按键了。。。
shinoki225 2008-11-02
  • 打赏
  • 举报
回复
我也想多点时间看书,问题是明天要交作业了。。
LS的文件系统太复杂,我的方法是直接把文件写进磁盘,再调入内存运行,不过现在的问题是运行一个程序后没办法返回,即是按了1再按其他就没反应了
zhizhi_2008 2008-11-02
  • 打赏
  • 举报
回复
哈,你可以做个文件系统,然后以文件方式在磁盘保存你的1、2程序,在BOOT的时候把它们读出来放到内存,然后再按楼上的方法,根据键盘的输入转跳到各个程序。
不过又如楼上说的一样,还是多学点再弄这个吧。
shinoki225 2008-10-31
  • 打赏
  • 举报
回复
顶住别沉。。还是不太懂。。T_T
程序1和2要怎样调入?
是不是需要自己人工分配并由自启程序记住程序1和2在外存(软盘)上的起始位置以及大小么?
程序1或2结束后怎样返回自启程序?
因为是简单的自启操作系统,所以是虚拟个软盘再在虚拟机上运行的。
zuo53664640 2008-10-29
  • 打赏
  • 举报
回复
接着1楼
出口参数: AH=键盘的扫描码
AL=字符的ASCII码
cmp al,'1'
jz xxxx
masterkill 2008-10-29
  • 打赏
  • 举报
回复
这东西能Boot OS......
shinoki225 2008-10-29
  • 打赏
  • 举报
回复
能够具体一点吗?我汇编不是很好,不知道怎么完整写出来。。
cnzdgs 2008-10-28
  • 打赏
  • 举报
回复
输入一个字符:
xor ax,ax
int 16h

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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