《30天自制操作系统》 day02
2017-09-26 11:12
316 查看
; hello-os ; TAB=4 ORG 0x7c00 ; 指明程序的装载到内存中的指定地址,0x00007c00-0x00007dff 启动区内容的装载地址 ; 以下的记述用于标准FAT12格式的软盘 JMP entry ;跳转到入口 DB 0x90 DB "HELLOIPL" ; DW 512 ; DB 1 ; DW 1 ; DB 2 ; DW 224 ; DW 2880 ; DB 0xf0 ; DW 9 ; DW 18 ; DW 2 ; DD 0 ; DD 2880 ; DB 0,0,0x29 ; DD 0xffffffff ; DB "HELLO-OS " ; DB "FAT12 " ; RESB 18 ; ; 程序核心 entry: MOV AX,0 ;初始化寄存器,mov指令相当于赋值,ax累加寄存器 MOV SS,AX ;SS栈段寄存器 MOV SP,0x7c00 ;SP栈指针寄存器 MOV DS,AX ;DS数据段寄存器 MOV ES,AX ;ES附加段寄存器 MOV SI,msg putloop: MOV AL,[SI] ;把si地址的1个字节的内容读入AL中 ADD SI,1 ; 给SI加1 CMP AL,0 ;比较指令 JE fin ;JE 条件跳转指令 fin 结束 MOV AH,0x0e ; 显示一个文字 MOV BX,15 ;指定字符颜色,BX基址指针寄存器,适合做计算内存地址的基点 INT 0x10 ;中断指令 调用显卡BIOS JMP putloop fin: HLT ; 让CPU停止,等待指令 JMP fin ; 无限循环 msg: DB 0x0a, 0x0a ;换行两次 DB "hello, world" DB 0x0a ; 换行 DB 0 RESB 0x7dfe-$ ; 0x7dfe‚Ü‚Å‚ð0x00‚Å–„‚ß‚é–½—ß DB 0x55, 0xaa DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 RESB 4600 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 RESB 1469432
相关文章推荐
- 学习[30天自制操作系统]day02遇到的makefile的问题(未解决)
- 读书笔记《30天自制操作系统》day02
- 读书笔记《30天自制操作系统》day02
- 30天自制操作系统day02
- 读书笔记《30天自制操作系统》day02
- 读书笔记《30天自制操作系统》day02
- 30天自制操作系统day23
- 30天自制操作系统-30days diy os
- 《30天自制操作系统》笔记(02)——导入C语言
- 由《30天自制操作系统》引发的漫画创作
- 【1】--《30天自制操作系统》读书笔记--0~3天
- 30天自制操作系统——用U盘启动自制系统
- (30天自制操作系统)中断13h 在vmware和virtualbox中发生故障的问题
- 30天自制操作系统day01
- 1.1_30天自制操作系统笔记_第一天_引导扇区
- 《30天自制操作系统》读书笔记Day10
- 《30天自制操作系统》之——第05天
- 30天自制操作系统笔记(三)
- 内存管理(30天自制操作系统--读书笔记)
- 《30天自制操作系统》 day0-day2小结