微机原理实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一汇编语言的编译、链接和调试
一、实验目的
1、学会使用masm对汇编源程序进行编译、链接、调试、运行。
2、掌握汇编语言的程序格式。
3、巩固所学的汇编语言指令。
二、实验环境
1、硬件:PC 微机
2、软件:宏汇编MASM 软件
三、实验原理
1、汇编语言程序的上机与处理过程
2、汇编语言的程序格式
(1)汇编程序一般由若干段组成,每个段都有一个名字,以SEGMENT作为段的开始,以ENDS作为段的结束,这两者前要冠以相同的名字作为段名。
(2)代码段和堆栈段必不可少,数据段和附加段可根据需要设置。堆栈段的SEGMENT之后有关键字STACK。代码段中有伪指令ASSUME告诉汇编程序,在各种指令执行时所要访问的各段寄存器将分别对应哪一段。
(3)源程序的每一段是由若干行汇编语句组成,每一行只有一条语句,且不能超过128个字符,但一条语句允许有后续行,最后均以回车结束。
(4)整个源程序必须以END语句结束,它通知汇编程序停止汇编。
四、实验内容
进入DOS环境中相应的目录下。
如汇编软件的文件来为:D:\MASM,则对应的操作为
(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”
(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>D:
D:\>CD MASM
D:\MASM>EDIT TEXT.ASM
进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。程序示例
DATA SEGMENT
DA1 DB 10H,20H,30H,40H
DA2 DB 0F0H,0B0H,0A0H,90H
DA3 DB 00H,00H,00H,00H
DATA ENDS
STACK1 SEGMENT PARA STACK
DB 10 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV AL,[DA1]
ADD AL,[DA2]
MOV [DA3],AL
MOV AL,[DA1+1]
ADC AL,[DA2+1]
MOV [DA3+1],AL
MOV AL,[DA1+2]
ADC AL,[DA2+2]
MOV [DA3+2],AL
MOV AL,[DA1+3]
ADC AL,[DA2+3]
MOV [DA3+3],AL
CODE ENDS
END START
3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。若编过程出现错误,则无法生成目标程序,需要回到编辑程序进行修改,修改后重新汇编直到无错出现。
4. 用连接程序LINK,将扩展名为.OBJ的目标程序连接装配成可执行文件,即在盘上生成扩展名为.EXE的文件。
5. 用调试程序DEBUG,调试扩展名为.EXE的文件。
1)用-N 命令指定要调试程序名称。
2)用-L 命令调入程序。
3)用-U 命令反汇编看看是不是刚才写入的程序。
4)反复用-T命令单步执行程序,认真观察每一步执行后的寄存器的值和相关存储器单元
内容的变化情况。(任意记录连续的3次显示情况)
5)执行完相关的程序段后,用-D DS:0000命令观察记录开始的12个字节内容。
6)总结该程序实现了什么功能,考虑用循环的方式改写程序调试。
五、实验报告要求
1、程序说明:说明程序的功能、结构、包括:程序名、功能、算法说明、主要符号,并对所用到的寄存器进行说明。
2、调试说明:包括上机调试的情况、上机调试步骤、调试过程中所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。
实验二顺序程序、分支程序编程实验
一、实验目的:
学习掌握顺序程序、分支程序的编写。
二、实验内容:
编写一个程序,在屏幕上显示:Input one number:
然后输入一个数字(0-9)
当输入的数大于4,屏幕显示:It’s big!
当输入的数小于等于4,屏幕显示:It’s small!
当输入的数不是数字,屏幕显示:It’s not number!
提示:可以将显示内容设置为一个数据段中的三个字符串:
程序基本结构框架可为:
DATA SEGMENT
STR DB ‘Input one number:$’
STR1 DB ‘It’s big!$’
STR2 DB ‘It’s small!$’
STR3 DB ‘It’s not number!$’
DATA ENDS
STACK1 SEGMENT PARA STACK
DB 20H DUP(?)
STACK1 ENDS
CODES SEGMENT
ASSUME CS:CODES,SS:STACK1,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START
利用DOS功能调用来完成输入数据、屏幕显示字符串来完成。
三、实验要求:
1、编写好程序,再上机调试。
2、记录调试成功通过的源程序。
3、画出源程序对应的程序流程图。
4、说明程序中用到了哪几个DOS系统功能,分别是什么功能。