自制操作系统——02(读磁盘数据到内存)
来源:互联网 发布:下载动态壁纸软件 编辑:程序博客网 时间:2024/04/29 05:57
boot.asm代码:
[org 0x7c00]KERNEl_ADDR equ 0x820;数据要加载到0x8200:0000处(姑且当作是内核)mov bx,LOADING_STRcall print_str;输出loading...字符串,bx是字符串地址参数mov ah,0x02;2h代表读盘mov al,1;读一个扇区mov ch,0;0柱面mov dh,0;0磁头mov cl,2;2扇区mov dl,0;0号驱动器mov ax,KERNEl_ADDRmov es,ax;数据最终加载到es:bx处mov bx,0int 13h;读取磁盘到内存jnc readDisk_successful;如果读取成功CF标志为置0jmp readDisk_error;读取失败,输出信息loop: jmp loopreadDisk_successful:mov bx,READ_DISK_SUCCESScall print_strjmp loopreadDisk_error:mov bx,READ_DISK_ERRORcall print_strjmp loopprint_str:;和上一个程序不同,这次我讲输出字符串的程序改成了一个函数mov ah,0x0emov bp,bxmov al,[bp]cmp al,0jz returnint 10hadd bx,1jmp print_strreturn:retLOADING_STR: db "loading...",13,10,0READ_DISK_SUCCESS: db "read disk successful!",13,10,0READ_DISK_ERROR: db "read disk error!",13,10,0times 510-($-$$) db 0dw 0x55aatimes 510 db 0dw 0x55aa
编译指令:
nasm boot.asm -f bin -o boot.img
Virtual Box 运行结果:
参考:
BIOS int 13h功能参数表
BIOS int 10h功能参数表
0 0
- 自制操作系统——02(读磁盘数据到内存)
- 《30天自制操作系统》——从引导区到磁盘
- 《30天自制操作系统》——从汇编到C
- 操作系统——磁盘
- 自制操作系统--(5)内存
- Norlit OS —— 自制操作系统 第6章 内存管理
- Norlit OS —— 自制操作系统 理论篇 内存布局示意图(待实现)
- 《30天自制操作系统》学习笔记——第9天 内存管理
- 自制操作系统——01(Hello,world!)
- 操作系统——磁盘图解
- 自制操作系统--(6)内存(2)
- 自制操作系统--(7)内存(3)
- 操作系统如何把程序从磁盘加载到内存并创建进程的?
- 30天自制操作系统——用U盘启动自制系统
- 30天自制操作系统——用U盘启动自制系统
- 30天自制操作系统——用U盘启动自制系统
- 30天自制操作系统——用U盘启动自制系统
- 30天自制操作系统——用U盘启动自制系统
- xamarin listview绑定数据
- zendstudio12破解码
- activiti工作流08-processDefinition的CRUD2
- 通过app调用系统音量
- 加速 Android 开发的五大开源网站
- 自制操作系统——02(读磁盘数据到内存)
- sentinel搭建redis集群经验总结
- android 中native 层的打印堆栈(c++)
- Global Supervised Descent Method
- hdu 5869 Different GCD Subarray Query 离线+树状数组
- Java中Map的使用
- Hive分析窗口函数(三) CUME_DIST,PERCENT_RANK
- 最近有几个开源项目值得介绍下
- Android 5.0 转场动画的使用