您的位置:首页 > 其它

《30天自制操作系统》学习笔记Day2

2017-04-03 14:27 190 查看

做了什么

学习了helloos.nas文件
把helloos.nas改为只用于制作启动区的ipl.nas,改造asm.bat将输出文件名改为ipl.bin顺便输出列表文件ipl.lst
makeimg.bat使用磁盘映像管理工具edimg.exe先读入一块空白的映像文件然后在开头写入ipl.bin的内容,将结果输出为helloos.img
制作Makefile文件,实现run.bat,install.bat,asm.bat,makeimg.bat的批处理,添加了make clean,make src_only命令,make clean可以删除最终成果以外的中间文件,make src_only可以把源文件以外的文件都删除干净

学到了什么

ORG 源于“origin”,告诉nask程序要从指定的地址开始
JMP  “jump” 相当于C语言的“goto”,意为“跳转”
“entry:” 标签声明,意为”入口“,用于指定jmp跳转目的地
MOV “move” 赋值
AX——accumulator,累加寄存器
CX——count,技术寄存器
DX——data,数据寄存器
BX——base,基址寄存器

SP——stack pointer,栈指针寄存器
BP——base pointer,基址指针寄存器
SI——source index,源变址寄存器 
DI——destination index,目的变址寄存器 

AL——累加寄存器低位(accumulator low)

CL——计数寄存器低位(counter low)
DL——数据寄存器低位(data low)

BL——基址寄存器低位(base low)

AH——累加寄存器高位(accumulator high)

CH——计数寄存器高位(counter high)

DH——数据寄存器高位(data high)

BH——基址寄存器高位(base high)

ES——附加段寄存器(extra segment)

CS——代码段寄存器(code segment)

SS——栈段寄存器(stack segment)

DS——数据段寄存器(data segment)

FS——没有名称(segment part 2)

GS——没有名称(segment part 3)

“MOV AL,[SI]” “[]”代表内存
MOV BYTE [678],123  678号存储单元会记住代表“123”的开或关的电信号,一共8个存储单元
MOV WORD [678],123  678号和679号存储单元会记住代表“123”的开或关的电信号,一共16个存储单元

ADD 加法指令
CMP 比较指令
JE 条件跳转指令,比较结果相等则跳转到指定地址,不等则不跳转
fin是个标号,表示结束
INT “interrupt”中断指令
BIOS "basic input output system",基本输入输出系统(程序)
HLT “halt” 让cpu停止动作的指令,即进入待机
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统