操作系统笔记(一)30天自制OS

前言:阅读书籍《30天自制操作系统》时的相关心得体会

1、各种批处理文件的编写和应用,如p23的asm.bat以及p41的makefile

2、c程序经过一系列操作变成机器语言的过程:p60。尤其注意,目标文件其实已经是机器语言文件了,但它还需要链接其他文件才行

3、一个问题:C语言中有没有直接写入指定内存地址的语句,或者说完成这个操作的方法

4、这个操作系统依据的CPU是因特尔的486,汇编语言也是依据486:p65

5、算法:循环生成16进制数:p67

int a[];
for (i=0xa0000;i<0xaffff;i++)
{
a[]=i&0x0f
}
/* i会从00到0f,一直循环

6、让特定二进制位置1、清0、翻转,分别用逻辑或、逻辑与、异或:p68

7、操作系统中界面图像的显示方法:向内存中特定区域(一个地址单元一个像素)写入不同的数字代码,实现每个像素的不同显示,最终组合成一幅完整的图像:p66

8、486的汇编在指定内存地址时,要在写地址时同时标注数据的大小,以确定数据占用以给定地址开始的几个地址单元:p36、p69

大小标识符有BYTE WORD DWORD三个,表示字节、字和双字。
汇编语言例子: MOV WORD[678],123 表示将123送到地址单元为678的地址中,大小为一个字节
C语言例子:之所以在声明指针时要写诸如 char *p 这样的语句,这个char就告知了编译器指针p所指向的数据的大小
注意:不管是char p 还是 intp,说的是指针p所指向的数据所占的大小,p本身的大小是固定的,就是地址总线的宽度,32位计算机就是32位

9、算法:将数组中的元素批次处理x个,比如批次处理3个:p77

int a[16*3]=[初始化赋值]for(i=1;i<=16;i++)
{
fun(a[0]);
fun(a[1]);
fun(a[2]);
a+=3;
}
/*区别于以往的思路,采用指针的思想,移动数组名指针所指向的位置来完成批次处理的操作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值