微机原理上机个人总结.doc
《微机原理上机个人总结.doc》由会员分享,可在线阅读,更多相关《微机原理上机个人总结.doc(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理上机个人总结微机原理上机课程设计报告微机原理课程设计报告设计题目:微机原理专班学业级号建筑电气与智能化学生姓名指导教师设计时间教师评分2021-2021学年上学期2021年6月目录实验一两个多位十进制数相加的实验.2一、实验目的.2二、实验内容.2三、程序框图.2四、程序清单.3五、实验要求.7实验二两个数相乘的实验.11一、实验目的.11二、实验内容.11三、程序框图.11四、程序清单.12五、实验要求.13实验一两个多位十进制数相加的实验一、实验目的1、学习数据传送和算术运算指令的用法。2、熟悉在PC机上建立、汇编、链接、调试和运行8088汇编语言程序的过程。二、实验内容将两个多位
2、十进制数相加。要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)结果送回DATA1处。三、程序框图显示被加数和加数被加数和加数以ASCII码表示的数字串形式转化为由十六进制表示的数字串形式计数值5C_清除最低位进位执行ADC带进位相加AAA调整结果送被加数区N调整偏移量C_1=0?Y十六进制的结果转化为ASCII码表示的数字串显示结果结束四、程序清单CRLFMACROMOVMOVINTMOVMOVINTENDMDATADATA1DATA2DATASTACKSTA用TOPSTACKCODEEQUENDSSEGMENT;代码段定义LENGTHSTA
3、;TOP等于堆栈单元数SEGMENTDB33H,39H,31H,37H,34HDB36H,35H,30H,38H,32HENDSSEGMENTDB20DUP(?)DL,0DHAH,02H21HDL,0AHAH,02H21H;宏指令定义结束;数据段定义;第一个数据(作为加数)47193;第二个数据(作为被加数)28056;数据段定义结束;堆栈段定义;定义从STA开始20个单元作为堆栈使;换行;2号调用换行;宏定义指令(回车执行程序);回车;2号调用显示回车ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVMOVMOVMOVMOVMOVMOVMOVCAL
4、LCRLFMOVMOVCALLCRLFMOVCALLMOVMOVCALLCRLFMOVA_,4C00HDI,OFFSETDATA2ADDA;使用加法运算程序SI,OFFSETDATA1B_,05DISPLA_,DATADS,A_A_,STACKSS,A_A_,TOPSP,A_SI,OFFSETDATA2B_,05DISPL;DATA2的偏移地址送SI;计数次数为5次;调用多次显示子程序DISPL(显示28056);回车换行;DATA1的偏移地址送SI;计数次数为5次;调用多次显示子程序DISPL(显示47193);回车换行;设置堆栈段;设置数据段SI,OFFSETDATA1;将和显示在屏幕上B
5、_,05DISPL;显示结束;调用多次显示子程序DISPL;执行回车换行程序;返回系统提示符INTDISPLDS1:PROCMOVMOVINTDECJNZRETDISPLADDAENDPPROCMOVMOVMOVAD1:制SUB16进制DECJNZMOVMOVMOVSUB21HNEARAH,02DL,SI+B_-121HB_DS1;多次显示子程序;显示功能号;显示字符串中一字符;DOS的中断调用;B_减1修改偏移量;如果B_未减到零跳到DSL执行指令;返回;完成显示功能子程序定义NEARD_,SIBP,DIB_,05;转换5次;实行加法运算子程序定义、属性为NEARBYTEPTRSI+B_-1
6、,30H;把加数的ASCLL转换为16进BYTEPTRDI+B_-1,30H;把被加数的ASCLL转换为B_AD1SI,D_DI,BPC_,05;修改偏移量;包括进位共5位CLCAD2:MOVMOVADCAAAMOVINCINCLOOPMOVMOVMOVAD3:ADDADDDECJNZRETADDACODEENDENDPENDSSTARTSI,ALSIDIAD2SI,D_DI,BPB_,05BYTEPTRSI+B_-1,30HBYTEPTRDI+B_-1,30HB_AD3AL,SIBL,DIAL,BL;清进位;进行代进位加法;非组合BCD码的加法调整;结果送被加数区;指向下一位;循环;十六进制
7、的数字串转化;加法程序结束;代码段结束;整个程序结束五、实验要求1.读懂源程序写出源程序注释。2.把源程序修改为任意两个六位十进制相加。并思考如果最高位有进位怎么办?CRLFMACROMOVMOVINTMOVMOVINTENDMDATADATA1DATA2DATA3DATASTACKSTATOPSTACKCODESEGMENTDB6DUP(?)DB6DUP(?)DBENDSSEGMENTDBEQUENDSSEGMENT20DUP(?)LENGTHSTADL,0DHAH,02H21HDL,0AHAH,02H21HASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTAR
8、T:MOVMOVMOVMOVMOVMOVA_,DATADS,A_A_,STACKSS,A_A_,TOPSP,A_MOVCALLCRLFMOVCALLCRLFMOVCALLMOVSAHFMOVADCCMPJZMOVINTJIEGUO:MOVMOVCALLCRLFMOVINTDISPLPROCDS1:MOVMOVINTDECJNZRETDISPLENDPSI,OFFSETDATA2ADDBSI,OFFSETDATA1ADDBDI,OFFSETDATA2ADDAAH,DATA3DL,30HDL,0DL,30HJIEGUOAH,02H21HSI,OFFSETDATA1B_,06DISPLA_,4C00
9、H21HNEARAH,02DL,SI+B_-121HB_DS1ADDAPROCMOVMOVMOVAD1:SUBSUBDECJNZMOVMOVMOVCLCAD2:MOVMOVADCAAAMOVINCINCLOOPLAHFMOVMOVMOVMOVAD3:ADDADDDECJNZRETNEARD_,SIBP,DIB_,06BYTEBYTEB_AD1SI,D_DI,BPC_,06PTRSI+B_-1,30HPTRDI+B_-1,30HAL,SIBL,DIAL,BLSI,ALSIDIAD2DATA3,AHSI,D_DI,BPB_,06BYTEPTRSI+B_-1,30HBYTEPTRDI+B_-1,30
10、HB_AD3ADDAENDPADDBPROCNEARMOVSH1:INTMOVDECCMPJNZRETADDBENDPCODEENDSENDSTARTB_,6MOVAH,01H21HSI+B_-1,ALB_B_,0SH1实验二两个数相乘的实验一、实验目的掌握乘法指令和循环指令的用法。二、实验内容实现十进制数的乘法。被乘数和乘数均以ASCII码形式存放在内存中乘积在屏幕上显示出来。三、程序框图乘数BLBL中数由ASCII码转化为十六进制SI指向被乘数计数值5C_取被乘数SI单元与BL相乘AAM调整结果低位与前次计算的进位DI相加AAA调整结果DIDI+1指向下一单元本次计算的进位DINC_1=0
11、?Y显示结果结束四、程序清单DATADATA1DATA2RESULTDATASTACKSTATOPSTACKSEGMENTDBDBDBENDSSEGMENTDB20DUP(?);定义堆栈段;从STA开始留出20个单元作为堆栈空间;给TOP赋值32H,39H,30H,35H,34H33H6DUP(00H);定义数据段;定义被乘数;定义乘数;定义乘积存放位置EQULENGTHSTAENDSCODEASSUMESTART:SEGMENTCS:CODE,DS:DATA,SS:STACK,ES:DATAMOVMOVMOVMOVMOVMOVMOVMOVANDMOVMOVA_,DATADS,A_A_,STA
12、CKSS,A_A_,TOPSP,A_SI,OFFSETBL,SIBL,00001111BSI,OFFSETDI,OFFSETDATA1RESULTDATA2;定义代码段;给DS赋初值;给SS赋初值;给SP赋初值;取乘数;乘数ASCLL转化为十六进制数;取被乘数偏移地址;取乘积存放的偏移地址MOVLOOP1:MOVANDINCMULC_,05AL,SIAL,00001111BSIBL;乘5次;取被乘数;被乘数ASCLL转化为十六进制数;指向下一个被乘数字节(高位);乘法运算AAM;乘法调整AHAL/10所得的商ALAL/10所得的余数ADDAAAMOVINCMOVLOOPMOVMOVDISPL:
13、MOVMOVADDINTDECLOOPMOVINTCODEENDENDSSTARTDI,ALDIDI,AHLOOP1C_,06SI,OFFSETAH,02DL,SI+5DL,30H21HSIDISPLA_,4C00H21H;判断是否6位显示结束;显示结束调用4CH号系统功能调用;返回系统提示符状态;代码段结束;整个程序结束;存调整后的高位积;判断乘法运算是否结束;取六个乘积字节RESULT;给定乘积存放的起始地址;调用2号系统功能调用;取出乘积(从高位开始取);将乘积的十六位进制数转化为ACSLL码;调用2号调用进行显示AL,DI;乘积低位加部分乘积;非压缩形式BCD码调整指令;存调整后的低位
14、积五、实验要求读懂程序写出程序注释。微机原理上机报告实验一:EMU8086软件安装与使用一、实验目的通过本实验学习EMU8086软件的安装与使用。二、实验设备PC微机一台Emu8086仿真软件三、实验任务1.安装Emu8086仿真软件。2.利用Emu8086仿真软件编程。四、实验原理Emu8086仿真软件就是在Windows下的一种仿真软件它可以仿真模拟8086的程序运行并且可以直观地观察CPU寄存器的变化情况。Emu8086-MicroprocessorEmulator结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC)还有一个循序渐进的指导工具。这对刚开始学组
15、合语言的人会是一个很有用的工具。它会在模拟器中一步一步的编译程序码并执行视觉化的工作环境让它更容易使用。你可以在程序执行当中检视暂存器、旗标以及记忆体。模拟器会在虚拟PC中执行程序这可以隔绝你的程序避免它去存取实际硬体像硬碟、记忆体而在虚拟机器上执行组合程序这可以让除错变得更加容易。这个软件完全相容於Intel的下一代处理器包括了PentiumII、Pentium4而相信Pentium5也会继续支援8086的。这种现象让8086程序码的可携性相当高它可以同时在老机器以及现代的电脑是执行8086的另一个优势是它的指令比较小且相当容易学习。五、实验内容1.安装Emu8086仿真软件熟悉菜单栏工具栏
16、的每个选项的作用按照操作流程完成程序的编译、链接并对编辑窗口中所编写的简单汇编程序进行仿真调试最后能够输出正确结果。2.编写简单程序实现字符串的显示显示内容为“姓名(换行)、学号”。六、实验过程及结果1.EMU8086安装。图1-1-1Emu8086的安装图1-1-2Emu8086的安装图1-1-3Emu8086的安装图1-1-4Emu8086的安装图1-1-5Emu8086的安装图1-1-6Emu8086的安装图1-1-7Emu8086的安装2.EMU8086使用安装完毕得到窗口如下图1-1:图1-2Emu进入主界面3.操作流程(1)file-new-emptyworkplace编辑程序如下
17、图1-2:图1-3Emu8086的安装(2)file-save保存程序(_.asm格式)完成程序的编辑.(3)assmbler-pile完成程序的编译和链接如下图1-3:图1-4Emu程序编译完成界面4.emulator-showemulator开始仿真调试如下图1-4:图1-5Emu程序仿真调试界面5.左键点击run运行程序结果如图1-5:图1-6Emu程序仿真调试结果界面七、实验感想这是微机原理的第一次上机我熟悉了用emu8086的使用方法通过这个模拟仿真软件初步了解了计算机的原理。因为是第一次实验我并不能很好地编写汇编语言程序但是相信通过以后的学习我可以变更强。八、参考文献1李继灿,谭浩
18、强.微机原理与接口技术.北京:清华大学出版社2王爽.汇编语言.北京:清华大学出版社3沈美明,温冬婵.汇编语言程序设计.北京:机械工业出版社4许立梓.微型计算机原理及应用.北京:机械工业出版社32位微机原理上机实验报告西北工业大学明德学院实验报告实验项目班姓学级名号微机原理与接口应用实验121204田家豪王辰硕121566121567指导老师伍明高实验题目(1)显示班级符号输出;(2)显示学号符号输出;(3)显示姓名符号输出;(4)显示单个字符输出;实验目的1、掌握在PC机上以十六位进制形式显示数据的方法2、熟悉汇编的调试环境和使用实验内容STACK1STACK2DATAMES1MES2MES3
19、MES4MES5MES6SDDATASEGMENTSTACKDW256DUP(?)ENDSSEGMENTUSE13DB121204,0AH,0DH,$DB121566,0AH,0DH,$DBTIANJIAHAO,0AH,0DH,$DB121204,0AH,0DH,$DB121567,0AH,0DH,$DBWANGCHENSHUO,0AH,0DH,$DBAENDSINT21HMOVD_,OFFSETMES3MOVAH,09HINT21HMOVD_,OFFSETSDMOVAL,DS:SIANDAL,0F0HSHRAL,4CMPAL,0AHJBC2ADDAL,07HCODESEGMENTUSE13A
20、SSUMESTART:MOVA_,DATAMOVDS,A_MOVD_,OFFSETMES1MOVAH,09HINT21HCS:CODE,DS:DATAMOVAH,09HMOVD_,OFFSETMES2C2:ADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVAL,DS:DIANDAL,0FHCMPAL,0AHJBC3:C3ADDAL,07HADDAL,30HMOVDL,ALMOVAH,02HINT21HMOVA_,4C00HINT21HCODEENDSENDSTART实验步骤(1)运行编译器编译程序。(2)单击编译保存。(3)单击调试程序发现无误。(4)运行程序。实验总结1.
21、通过实验熟悉了汇编语言编译环境了解了程序的编译运行和调试的方法2.实验过程中在调试的时候各调试指令的用法十分复杂需要不断练习熟悉指令的运行目的。3.不同的程序代码在不同的环境运行方式也不同这是我们必须要掌握的技能。实验题目显示程序实验实验目的(1)掌握在PC机上以十六进制形式显示数据的方法。(2)掌握部分DOS功能调用使用方法。(3)熟悉Tdpit集成环境和调试器的使用。实验内容及说明一般来说有很多程序需要显示输出提示运行的状况和结果有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能
22、调用(INT21H)。(1)显示单个字符输出入口:AH=02H调用参数:DL=输出字符(2)显示字符串入口:AH=09H调用参数:DS:D_=串地址$为结束字符(3)键盘输入并回显入口:AH=01H返回参数:AL=输出字符(4)返回DOS系统入口:AH=4CH调用参数:AL=返回码实验步骤(1)运行Tdpit软件选择文件菜单点击新建进入一个源文件编辑界面。根据实验内容的描述编写实验程序。(2)使用编译菜单中的编译和链接对实验程序进行汇编、连接。(3)使用编译菜单中的运行运行程序观察运行结果。(4)使用编译菜单中的调试调试程序观察调试过程中数据传输指令执行后各寄存器及数据区的内容。(5)更改数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 上机 个人 总结
限制150内