版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验日志学号201608010520姓名甘昆禄专业年级班级智能1601实验日期208.09.29实验项目第2天:汇编语言学习与Makefile入门一、实验主要内容1.首先下了一个文本编辑器,真的厉害,我们看看。HTML可以辨别和显示C和C+肯定也行二进制的镜像文件也可以打开修改,这里输入字母二进制文件自动修改了,很可以,不过在第五行再加字母就会出错。2.学寄存器和汇编语言诶我们学计算机的寄存器真的哪里都学过,每个课几乎都重新提一遍,特别电路逻辑已经很细致的讲了结构,系统课讲了CPU寄存器的用法。所以我觉得有点多余,不过巩固下知识也可以。用个例子说寄存器,我们把计算机看做一个机器人,CP
2、U就是大脑,寄存器是大脑里的记忆单元,而内存和硬盘对计算机来说,只是一个柜子,一个存储东西(数据)的大柜子,机器人只能进行数据处理,按照人的指令执行。指令已经固化在大脑CPU内部,但数据存储在柜子里,这个柜子分为许多小格,每个小格都编了一个号,第一个小格叫0号,第二个叫1号,以此类推,每个小格存储一个字节。抽象来讲,是一个一维的线性数组。一个小格是8bit一个字节,2个小格是2个字节,CPU可以操作1个,2个,4个,8个格子,比如AL(1),AX(2),EAX(4),RAX(8)。对CPU来说,内存和硬盘就是一个(数字)地址而已。显存,IO地址,U盘也是地址,存取内存比寄存器慢很多,所以编写程
3、序尽量用寄存器存数,而不是内存地址。CPU的记忆单元-寄存器很少,只有几十上百个,每个寄存器都有一个名字,比如AX,BX,CX,DX,SP,BP,DI,DI等等,因为名正则言顺。寄存器只是一个存储单元,他只能存储东西(数据),我们对他所做的所有操作只有存数据在里面,还有从中取出数据。MOV AX,100 就是把数据100存储在AX寄存器中,MOV SS,AX 就是把AX中的数据取出来,并放到寄存器SS中。MOV指令对应一个机器指令01码,处理器有一个专门的译码电路逐条把这些01编码翻译为各种控制信号,然后控制其内部的电路完成一个个的运算或者是其它操作。M
4、OV AX,2000H;将16位数据2000H传送到AX寄存器 MOV AL,20H;将8位数据20H传送到AL寄存器 MOV AX,BX;将BX寄存器的16位数据传送到AX寄存器 MOV AL,2000H;将2000H单元的内容传送到AL寄存器 需要注意的是: (1)两个存储单元之间不能直接传送数据,即:MOV指令只允许一个操作数在存储器中。MOV SI,2000H;这是错误的 (2)MOV指令中立即数不能直接传送给段寄存器(CS、DS、SS、ES)和IP;段寄存器之间不能直接传送。MOV IP,2000 H ;这是错误的 (3)CS和IP不能作为目的操作数。MOV CS,AX ;这是错误的
5、 (4)MOV指令中立即数不能作目标操作数。MOV 2000H,SI ;这是错误的还还还讲了add,CMP,JE等我就不讲了。3.中断诶嘿,这个也是学过的,可能不同系统对应的中断号不同,但机制都是一样的,无非就是通过I/O的硬中断或系统的软中断让CPU暂时停止当前工作,转而去执行对应中断的程序,结束后继续执行原来的工作,这里软中断对应16号中断函数。而这些中断函数在出厂的时候就已经写在了BIOS(基本输入输出系统)程序装在了芯片里。电脑启动后,CPU把BIOS程序调入内存某个地址emmm是的4.简述汇编程序作用效果主体如下:entry:MOVAX,0MOVSS,AXMOVSP,0x7c00MO
6、VDS,AXMOVES,AXMOVSI,msgputloop:MOVAL,SIADDSI,1CMPAL,0JEfinMOVAH,0x0eMOVBX,15INT0x10JMPputloopfin:HLTJMPfinmsg:DB0x0a, 0x0aDB"hello, world"DB0x0aDB0RESB0x7dfe-$DB0x55, 0xaa前面entry部分就是寄存器的初始化,把程序加载到地址0X7c00(IBM大叔设的),然后放msg(这里是一个数据)地址到寄存器SI里,我们看到msg地址其实就是我们要开始输出的内容。首先是两个换行,然后就到那个字符串,那具体怎么输出看中
7、间putloop。这里是用INT中断一个字符一个字符地输出,所以还用到了判断,当判断对应的字符不是0时,就不断的输出,否则就跳到fin地址,这里的HLT就是作者说的停止,CPU停止工作。我们看,当msg地址不断加1后会出现一个字符是0,诶符合停止输出的条件,这时就跳到了HLT指令,若没有I/O指令(鼠标电脑等),这时CPU是释放的,挺好。那么helloworld就是这么打印出来的,学到这总算是明白了。5.Makefile入门可能作者觉得很多bat文件太烦?诶想想不对,确实程序员们要简洁不然很容易弄乱的,这时候就需要聪明的批处理文件了。.Makefile入门-一个聪明的批处理文件 ip
8、l.bin : ipl.nas Makefile./z_tools/nask.exe ipl.nas ipl.bin ipl.lstMake ipl.bin;寻找后面两个依赖文件,执行汇编生成目标文件clean : -del ipl.bin -del ipl.lst ;删除生成两个文件Makefile就很方便,把很多文件汇聚成了一个,文件、操作都简单了很多直接一个make run就行了而且也不怕什么错误,无论怎样make img和make run都不会错。二、遇到的问题及解决方法第二天
9、主要还是理解和知识点吧,总的操作上并没有什么问题。1、 输出显示的时候有点困惑,没有完全了解汇编代码是,不知道输出是怎样的形式,是瞬间一次同时输出,还是像数码管扫描输出。后来明白是一个字符一个字符的输出,知道命令结束。解决方法:主要是CMP指令理解错误了,以为是AL里地址为0时跳转,后来经老师提醒是对比对应的字符,当字符为0时跳转,我转回去看msg地址内容是看见0才恍然大悟。三、程序设计创新点1、为了确认我的猜测对不对,我对ipl.nas进行了修改,如下:这次我把CMP判断变成了1,结果不仅输出了helloworld,还输出了我后面的内容,直到比较到1.改为2后出现了乱码,程序差点崩(下次不试了),证明猜想正确四、实验心得体会总的来说这节对于有基础的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业空间内墙涂料施工组织设计方案
- 云计算服务信息系统集成合同
- 幼儿园结核病防控预案
- 2024-2025学年河北省部分学校高三上学期第二次质检生物试题及答案
- 消防安全隐患排查整治报告3篇
- 家长委员会与学校合作方案
- 经济师考试旅游经济(初级)专业知识和实务试题及解答参考
- 工作总结与计划模板
- 《乘法的初步认识》说课稿
- 采购项目组织机构管理体系
- 北京市道德与法治初一上学期期中试卷及答案指导(2024年)
- 高校实验室安全基础学习通超星期末考试答案章节答案2024年
- 四川省绵阳市高中2025届高三一诊考试物理试卷含解析
- B737-300轮舱部件图
- 各种注射法(课堂PPT)
- 译林牛津英语7A-unit3-Welcome-to-our-school教案(6课时)
- 第五章 种内与种间关系
- 飞利浦16排螺旋CT机操作规程(1)
- 油菜品种田间记载项目与标准
- 渣土车辆驾驶员管理制度
- 德力西系列变频器说明书
评论
0/150
提交评论