微机原理实验一.pdf

微机原理实验一.pdf

ID:56777465

大小:848.49 KB

页数:7页

时间:2020-07-09

微机原理实验一.pdf_第1页
微机原理实验一.pdf_第2页
微机原理实验一.pdf_第3页
微机原理实验一.pdf_第4页
微机原理实验一.pdf_第5页
资源描述:

《微机原理实验一.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一汇编语言程序设计上机实验的基本过程——PB14000521王艳红〇、实验目的和要求:1.熟悉汇编语言程序设计上机实验的计算机软硬件平台。2.熟悉汇编语言程序设计上机实验的过程。3.熟练掌握汇编语言源程序的编辑及对其汇编、连接、运行的过程。4.熟练掌握使用DEBUG调试和运行程序的方法(“工欲善其事,必先利其器!“)。一、实验内容和过程注:由于实验内容有两个题目,为了写实验报告时思路的连贯性,对于实验内容和过程两个题目分开写。1.0实验内容原题1.请先充分分析和理解课件的源程序,然后输入、编辑该程序,并完成对其汇编、连接、

2、运行等操作过程。再用调试程序debug来查看、记录(建议使用表格形式)和分析CS、IP、DS、ES、SS、SP以及AX、DX等程序中所使用到的和自己感兴趣的寄存器(例如标志寄存器),在该程序执行前、执行过程、执行结束(出现有“Programterminatednormally”提示信息)返回DOS等各个步骤的状态值,亲历查验程序运行的各个环节的状态(包括查看数据段、堆栈段的存储内容),全面分析和充分理解汇编语言源程序的组成,以及DOS系统平台调用执行程序的过程(包括返回DOS状态的操作原理)。1.1程序的算法思想a.例题中程序

3、的主要功能是在DOS界面输出字符串“Thisisasampleprogram.”,并自动换行。b.程序中定义了三个段DATA、STACK和CODE。DATA中以DA1为偏移地址的名定义了一个字符串“Thisisasampleprogram.”和三个字符,其中0DH是CR(即回车)的ASCII码,0AH是LF(即换行)的ASCII码,$是后续显示字符串功能的结束字符串标志。STACK中定义了一个栈,这个栈内定义了100个字节的空间,但是没有放入具体内容。CODE中定义了一个MAIN过程,MAIN过程中的FAR说明了是段间调用,A

4、SSUME指明了段寄存器与段基址的对应关系。在此处即为CS对应CODE,DS对应DATA,SS对应STACK。START标志着汇编程序的一个标号,定义了程序的入口。接着的两行代码MOVAX,STACKMOVSS,AX是将STACK段基址送给SS,之所以分为两步是因为不能在两个段寄存器之间直接传送数据,接下来的PUSHDS是将DS的值放到栈中暂时保存下来,因为下面字符串输出的时候需要改变DS的值,下面两行代码MOVAX,0PUSHAX将0000H压入栈中,这是因为在子过程结束后,执行RET返回命令后,因为是远调用,会先从栈中弹出

5、两个字节为IP赋值,然后弹出两个字节为CS赋值以便返回主程序。我们知道,在AH=9时,INT21的功能是显示字符串,串地址为DS:DX,‘$’为结束符。所以下面的四行代码MOVAX,DATAMOVDS,AXMOVAH,9MOVDX,OFFSETDA1是在为字符串输出做准备。将字符串段地址DATA赋值给DS,字符串偏移地址DA1赋值给DX,9赋值给AH,则执行INT21H时,字符串“Thisisasampleprogram.”和回车就显示在DOS界面上。RET返回原地址,MAINEDNP表示MAIN过程结束。CODEENDS表示

6、CODE段结束。ENDSTART表示汇编源程序结束。1.2程序的流程图开始打印DATA:DA1处的字符串结束图一:程序一流程图1.3程序的清单(源程序)数数区车换结标识栈栈区节码远调过栈区栈为时值栈为值数区数区调号输从过结义结汇编结2.0实验内容原题2.请编写一个汇编源程序,实现从键盘输入的小写字母用大写字母在屏幕上显示出来。提示:键盘输入单个字符并回显使用1号DOS功能调用,出口参数在AL寄存器。屏幕显示输出单个字符使用2号DOS功能调用,入口参数送DL寄存器。(本题的目的就是让上机实验者亲历使用和体验一下DOS功能调用,来

7、为下一次的实验热身。)要求:在程序运行时,先输入的小写字母在随后“自动”显示大写字母时仍在屏幕上。至少能正确实现一个英文字母大小写的转换且能正常返回DOS即可,而不论转换字母的个数和转换方式。类同第1题的要求,使用调试程序debug来分析自编的该程序2.1程序的算法思想a.本题中所做程序主要功能是在DOS界面显示说明语句:“Pleaseinputasmallword:”并且将一个从键盘输入的小写字母转换成大写字母显示在DOS界面。b.程序中定义了三个段:DATA、STACK和CODE。DATA段定义了一个字符串Pleasein

8、putasmallword。STACK段定义了一个长度为100字节的栈。CODE为代码段。其中包含一个远调用过程MAIN,其段寄存器与段基址的对应关系为CS:CODE,DS:DATA,SS:STACK。START开始之后开始第一条可执行语句。这一部分的主要功能是将DS的段基址

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

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

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