30天自制操作系统日志第2天

30天自制操作系统日志第2天

ID:43441798

大小:450.86 KB

页数:8页

时间:2019-10-02

30天自制操作系统日志第2天_第1页
30天自制操作系统日志第2天_第2页
30天自制操作系统日志第2天_第3页
30天自制操作系统日志第2天_第4页
30天自制操作系统日志第2天_第5页
资源描述:

《30天自制操作系统日志第2天》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统实验日志学号201608010520姓名甘昆禄专业年级班级智能1601实验日期208.09.29实验项目第2天:汇编语言学习与Makefile入门一、实验主要内容1.首先下了一个文本编辑器,真的厉害,我们看看。HTML可以辨别和显示C和C++肯定也行二进制的镜像文件也可以打开修改,这里输入字母二进制文件自动修改了,很可以,不过在第五行再加字母就会出错。2.学寄存器和汇编语言诶我们学计算机的寄存器真的哪里都学过,每个课几乎都重新提一遍,特别电路逻辑已经很细致的讲了结构,系统课讲了CPU寄存器的用法。所以我觉得有点多余,不过巩固下知识也

2、可以。用个例子说寄存器,我们把计算机看做一个机器人,CPU就是大脑,寄存器是大脑里的记忆单元,而内存和硬盘对计算机来说,只是一个柜子,一个存储东西(数据)的大柜子,机器人只能进行数据处理,按照人的指令执行。指令已经固化在大脑CPU内部,但数据存储在柜子里,这个柜子分为许多小格,每个小格都编了一个号,第一个小格叫0号,第二个叫1号,以此类推,每个小格存储一个字节。抽象来讲,是一个一维的线性数组。一个小格是8bit一个字节,2个小格是2个字节,CPU可以操作1个,2个,4个,8个格子,比如AL(1),AX(2),EAX(4),RAX(8)。对C

3、PU来说,内存和硬盘就是一个(数字)地址而已。显存,IO地址,U盘也是地址,存取内存比寄存器慢很多,所以编写程序尽量用寄存器存数,而不是内存地址。CPU的记忆单元-寄存器很少,只有几十上百个,每个寄存器都有一个名字,比如AX,BX,CX,DX,SP,BP,DI,DI等等,因为名正则言顺。寄存器只是一个存储单元,他只能存储东西(数据),我们对他所做的所有操作只有存数据在里面,还有从中取出数据。MOV AX,100 就是把数据100存储在AX寄存器中,MOV SS,AX 就是把AX中的数据取出来,并放到寄存器SS中。MOV指令对应一个机器指令0

4、1码,处理器有一个专门的译码电路逐条把这些01编码翻译为各种控制信号,然后控制其内部的电路完成一个个的运算或者是其它操作。MOVAX,2000H;将16位数据2000H传送到AX寄存器MOVAL,20H;将8位数据20H传送到AL寄存器MOVAX,BX;将BX寄存器的16位数据传送到AX寄存器MOVAL,[2000H];将2000H单元的内容传送到AL寄存器需要注意的是:(1)两个存储单元之间不能直接传送数据,即:MOV指令只允许一个操作数在存储器中。MOV[SI],[2000H];这是错误的(2)MOV指令中立即数不能直接传送给段寄存器(

5、CS、DS、SS、ES)和IP;段寄存器之间不能直接传送。MOVIP,2000H;这是错误的(3)CS和IP不能作为目的操作数。MOVCS,AX;这是错误的(4)MOV指令中立即数不能作目标操作数。MOV2000H,[SI];这是错误的还还还讲了add,CMP,JE等我就不讲了。3.中断诶嘿,这个也是学过的,可能不同系统对应的中断号不同,但机制都是一样的,无非就是通过I/O的硬中断或系统的软中断让CPU暂时停止当前工作,转而去执行对应中断的程序,结束后继续执行原来的工作,这里软中断对应16号中断函数。而这些中断函数在出厂的时候就已经写在了B

6、IOS(基本输入输出系统)程序装在了芯片里。电脑启动后,CPU把BIOS程序调入内存某个地址emmm……是的4.简述汇编程序作用效果主体如下:entry:MOVAX,0MOVSS,AXMOVSP,0x7c00MOVDS,AXMOVES,AXMOVSI,msgputloop:MOVAL,[SI]ADDSI,1CMPAL,0JEfinMOVAH,0x0eMOVBX,15INT0x10JMPputloopfin:HLTJMPfinmsg:DB0x0a,0x0aDB"hello,world"DB0x0aDB0RESB0x7dfe-$DB0x55,0

7、xaa前面entry部分就是寄存器的初始化,把程序加载到地址0X7c00(IBM大叔设的),然后放msg(这里是一个数据)地址到寄存器SI里,我们看到msg地址其实就是我们要开始输出的内容。首先是两个换行,然后就到那个字符串,那具体怎么输出看中间putloop。这里是用INT中断一个字符一个字符地输出,所以还用到了判断,当判断对应的字符不是0时,就不断的输出,否则就跳到fin地址,这里的HLT就是作者说的停止,CPU停止工作。我们看,当msg地址不断加1后会出现一个字符是0,诶符合停止输出的条件,这时就跳到了HLT指令,若没有I/O指令(鼠

8、标电脑等),这时CPU是释放的,挺好。那么helloworld就是这么打印出来的,学到这总算是明白了。5.Makefile入门可能作者觉得很多bat文件太烦?诶想想不对,确实程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。