昆明理工大学微机原理实验报告.doc_第1页
昆明理工大学微机原理实验报告.doc_第2页
昆明理工大学微机原理实验报告.doc_第3页
昆明理工大学微机原理实验报告.doc_第4页
昆明理工大学微机原理实验报告.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

昆明理工大学电力工程学院学生实验报告实验课程名称: 微机原理及应用 开课实验室:计算机302 2017年 5月 9日年级、专业、班14电自3班学号201410501321姓名栾江飞成绩实验项目名 称实验1 Emu8086仿真软件的使用指导教师毕贵红 教师评语一、 实验目的: 学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,为后继课程打下坚实的基础。学会运算类指令解决实际问题的方法。掌握运算类指令对各标志位的影响及其测试方法。二、 实验原理:使用MASM汇编语言设计工具,设计简单的汇编语言程序并进行运行调试,以便掌握汇编语言设计、编写、调试和运行程序的方法三、 实验仪器、材料:a) 软件MASM5.0b) PC微机一台四、 实验步骤:a) 建立asm文件在windows系统环境下,应用写字板或其它文字编辑软件编写汇编语言源文件。注意保存的源文件以asm为后缀。b) 用汇编程序MASM对源文件汇编产生目标程序.OBJ。c) 用连接程序LINK产生可执行文件.EXE。d) 执行程序。e) 程序调试五、 实验过程原始记录(数据图表、计算等)熟悉Emu8086软件运行Emu8086软件点击 “继续”按钮,点击“新建”按钮选择“EXE模板编程练习一在数据表DATA1中存放数据 0F865H,在数据表DATA2中存放数据360CH。现编写出将两数分别取出相加,然后将计算结果存放到当前数据段中,偏移地址为3800H单元中的源程序。:3、编程练习二编写计算5899H+7987H的程序,并将计算结果存入0B88H单元;单步运行,并认真记录标志寄存器的信息变化;从内存中观察计算结果六、 实验结果分析汇编源程序清单练习1; EXE format allows several segments - for stack, data and code.TITLE 8086 Code Template (for EXE file); AUTHOR emu8086; DATE ?; 8086 Code TemplateDSEG SEGMENT DATA; TODO: add your data here!DATA1DW0F865HDATA2DW360CHDSEG ENDSSSEG SEGMENT STACK STACK DW 100h DUP(?)SSEG ENDSCSEG SEGMENT CODESTART PROC FAR; Store return address to OS: PUSH DS MOV AX, 0 PUSH AX; set segment registers: MOV AX, DSEG MOV DS, AX MOV ES, AX; TODO: add your code here!LEASI, DATA1MOVAX, DATA1ADD AX, DATA2MOV 2800H, AXHLT; return to operating system: RETSTART ENDPCSEG ENDS END START ; set entry point.练习2; EXE format allows several segments - for stack, data and code.TITLE 8086 Code Template (for EXE file); AUTHOR emu8086; DATE ?; 8086 Code TemplateDSEG SEGMENT DATA; TODO: add your data here!DATA1DW0F865HDATA2DW360CHDSEG ENDSSSEG SEGMENT STACK STACK DW 100h DUP(?)SSEG ENDSCSEG SEGMENT CODESTART PROC FAR; Store return address to OS: PUSH DS MOV AX, 0 PUSH AX; set segment registers: MOV AX, DSEG MOV DS, AX MOV ES, AX; TODO: add your code here!LEASI, DATA1MOVAX, DATA1ADD AX, DATA2MOV 2800H, AXPOP DXPOP BXHLT; return to operating system: RETSTART ENDPCSEG ENDS END START ; set entry point.昆明理工大学电力工程学院学生实验报告实验课程名称:微机原理及应用 开课实验室:计算机308 2017年 5月11日年级、专业、班14电自3班学号201410501321姓名栾江飞成绩实验项目名 称实验2 分支、循环及子程序设计实验指导教师毕贵红教师评语七、 实验目的1.学习分支程序、循环结构程序的设计和调试方法。2.学习子程序的定义和调试方法。3.掌握分支、循环、子程序等程序的基本结构。八、 实验原理实验题目:从键盘输入一个字符串,统计字母(不分大小写)出现的个数,并显示结果。九、 实验仪器、材料1.软件MASM5.02.PC微机一台十、 实验步骤1.输入程序并检查无误,经汇编、连接后生成.EXE文件。2.使用DEBUG命令运行以上程序。十一、 实验过程原始记录(数据图表、计算等)十二、 实验结果分析汇编源程序清单MLENGTH=128 ;缓存区长度DATA SEGMENT STR1 DB MLENGTH ;符合0AH功能调用所需的缓冲区 DB 0 ;实际键入的字符数 DB MLENGTH DUP(0) MESS1 DB PLEASE INPUTE STR1:$ ;提示输入一个字符STR1 MESS2 DB THE NUMBER OF DIGITAL:$ ;数字个数输出提示 MESS3 DB THE NUMBER OF LITTER:$ ;字符个数输出提示 N DW 30 ;DATA ENDSCODE SEGMENT ASSUME DS:DATA,ES:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX ;设置DS MOV ES,AX MOV DX,OFFSET MESS1 ;显示提示语 CALL DISPMESS MOV DX,OFFSET STR1 MOV AH,0AH ;接收一个字符串 INT 21H CALL NEWLINE MOV BH,0 ;清数字字符计数器 MOV BL,0 ;清字母字符计数器 MOV CL,STR1+1 ;取字符串长度 MOV CH,0 JCXZ COK ;若字符串长度等于零,不统计 MOV SI,OFFSET STR1+2 ;指向字符串首地址 AGAIN: MOV AL,SI ;取一个字符 INC SI ;调整数据指针,指向下一个数据 CMP AL,0 ;判断是否为数字字符 JB NEXT ;小于0,不属于统计字符,转向取一个字符 CMP AL,9 JA NODEC ;大于9,不属于统计字符,转向取一个字符 INC BH ;0-9,数字字符计数加1 JMP SHORT NEXT ;转向取一个字符NODEC: OR AL,20H ;转小写 CMP AL,a ;判断是否是字母字符 JB NEXT CMP AL,z INC BL ;字母字符计数加1 NEXT: LOOP AGAINCOK: MOV DX,OFFSET MESS2 CALL DISPMESS MOV AL,BH XOR AH,AH CALL DISPAL ;显示数字字符个数 CALL NEWLINE MOV DX,OFFSET MESS3 CALL DISPMESS MOV AL,BL XOR AH,AH CALL DISPAL ; 显示字母字符个数 CALL NEWLINE JMP RETU ;宏跳转 DISPAL PROC NEAR MOV CX,3 ;8位二进制数转换成3位十进制 MOV DL,10 DISP1:DIV DL XCHG AH,AL ;使AH=商、AL=余数 ADD AL,30H ;使余数转换成ASCII码 PUSH AX ;压入堆栈 XCHG AH,AL MOV AH,0 LOOP DISP1 MOV CX,3 DISP2:POP DX ;弹出1位 CALL ECHOCH ;显示字符 LOOP DISP2 RET DISPAL ENDP DISPMESS PROC NEAR ;调用DOS 9号功能,显示字符串 MOV AH,09H INT 21H RET DISPMESS ENDP ECHOCH PROC NEAR ;调用DOS2号功能,显示1个字符 MOV AH,2 INT 21H RET ECHOCH ENDP NEWLINE PROC ;显示回车和换行 PUSH AX PUSH DX MOV DL,0DH ;回车符的ASCII码是0DH MOV AH,2 INT 21H ;显示回车符 MOV DL,0AH ;换行符的ASCII码是0AH MOV AH,2 INT 21H ;显示换行符 POP DX POP AX RET NEWLINE ENDP RETU:MOV AH,4CH ;返回DOS系统 INT 21H CODE ENDS END START昆明理工大学电力工程学院学生实验报告实验课程名称:微机原理及应用 开课实验室:计算机302 2017年 5月 16日年级、专业、班14电自3班学号201410101105姓名栾江飞成绩实验项目名 称实验3 显示程序设计实验指导教师毕贵红教师评语十三、 实验目的1.了解INT 21H部分功能号的功能和使用方法。2.掌握字符方式下PC机显示器显示控制。3.掌握分支、循环、子程序等程序的基本结构。十四、 实验原理实验题目:从键盘输入两个字符串,比较是否一致,并显示比较结果。十五、 实验仪器、材料软件MASM5.0PC微机一台十六、 实验步骤1.输入程序并检查无误,经汇编、连接后生成.EXE文件。2.使用DEBUG命令运行以上程序,并观察实验结果。十七、 实验过程原始记录(数据图表、计算等)十八、 实验结果分析汇编源程序清单MLENGTH=128DATA SEGMENT STR1 DB MLENGTH DB 0 DB MLENGTH DUP(0) STR2 DB MLENGTH DB 0 DB MLENGTH DUP(0) MESS1 DB PLEASE INPUTE STR1:$ MESS2 DB PLEASE INPUTE STR2:$ MESS3 DB RESULT:THEY ARE THE SAME$ MESS4 DB RESULT:THEY ARE DIFFERENT$ N DW 30DATA ENDSCODE SEGMENT ASSUME DS:DATA,ES:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV DX,OFFSET MESS1 CALL DISPMESS MOV DX,OFFSET STR1 MOV AH,0AH INT 21H CALL NEWLINE MOV DX,OFFSET MESS2 CALL DISPMESS MOV DX,OFFSET STR2 ;输入一串字符串至STR2缓冲区 MOV AH,0AH INT 21H CALL NEWLINE MOV AX,SEG STR1 ;取STR1的段地址 MOV DS,AX MOV AX,SEG STR2 MOV ES,AX LEA SI,STR1 ;取STR1的偏移地址 LEA DI,STR2 MOV CX,N CLD REPE CMPSB ;逐一比较两串的对应字符是否相等 JNE EXIT ;不相等,则转EXIT MOV BX,0 ;相等,则BX=0 MOV DX,OFFSET MESS3 CALL DISPMESS JMP RETU EXIT:MOV BX,-1 MOV DX,OFFSET MESS4 CALL DISPMESS JMP RETU DISPMESS PROC NEAR ;调用DOS 9号功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论