下面贴出了两段代码boot.asm 与shell.asm,实现磁盘启动,并且解析了两个命令 time 与 reboot,有兴趣的朋友可以看看.
步骤:放入一张磁盘,把这两段代码编译成exe,分别执行一次,重启计算机,如果有虚拟系统环境的软件更好,如virtual pc,直接就可以看到效果. 【程序编程相关:汇编(十二)——位操作类指令练习】
由于本人的汇编知识很菜,这篇文章只是让大家看看磁盘启动是如何实现的,如果有错误的地方,大家能够指出那就太谢谢了 【推荐阅读:MovieClip 类的属性概要】以下是boot.asm 【扩展信息:关于成员和基类的构造函数】
;启动代码
;-----------------------------------------------------code_seg segment para code
main proc far assume cs:code_seg,ds:code_seg org 00hstart: push ds sub ax,ax push ax mov ax,code_seg mov ds,ax mov es,axmov ax,0301h ;写1扇区
mov cx,0001h mov bx,7c00h ;从代码7c00h开始 mov dx,0 int 13hmov ax,0301h ;写2扇区,数据
mov cx,0002h mov bx,7e00h ;从代码7e00h开始 mov dx,0 int 13h ret org 7c00h ;mbr开始 mov ax,0 mov es,ax mov ax,201h mov bx,7e00h ;把2扇区读入7e00h mov cx,2 ;第二扇区 mov dx,0 int 13hmov ah,6h ;清屏
mov al,26 mov bh,07h mov cx,0 mov dh,26 mov dl,80 int 10h ... 下一页