微机原理实验指导书
- 格式:doc
- 大小:4.95 MB
- 文档页数:15
微机原理实验指导书
课程类型:考查课
专业班级:信息工程与自动化学院通信2013级
学年学期:2014—2015 学年 上学期
课程总学时:16 学时
主讲教师:杨青青
说明:
1. 本次实验为16个学时,以微机原理课程为依托,每两个学时完成一个实验,原理上应该有8份实验报告。
2. 实验报告可采取打印的方式,分析、填写程序等部分应该手写。
实验一 汇编程序上机训练-熟悉指令格式
一、上机环境:
Window7系统,MasmEditor软件
二、实验目的:
1、学习使用在MasmEditor环境下完成汇编语言的编译、连接、运行、调试等。
2、熟悉80X86的指令系统及汇编语言指令格式。
三、实验步骤:
1、编译源程序,生成可执行文件(.exe);
2、用DeBug的各个调试指令,观察寄存器窗口的变化。
四、实验内容:
参照微机原理课程第三章内容,进行课本例题的上机练习,完成程序的调试,例如单步步入、断点设置等,并在寄存器窗口察看各个寄存器的变化,从而也加深对80X86寻址方式的理解。
上机题目:
微机原理教材第三章,例3.1,例3.3,例3.4,例3.6,例3.7,例3.8,例3.11,例3.23,例3.52,例3.64,例3.68,例3.71,例3.73
思考题:
试编程实现:
(1)AL寄存器的第四位清0;
(2)BL寄存器的第四位置1;
(3)CL寄存器的第四位取反;
(4) 测试DL寄存器的最低两位是否为0,若是将0送入AL寄存器;否则将1送入AL寄存器。
五、实验报告要求:
1. 实验报告符合要求格式
2. 完成思考题的编程实现。
实验例题
实验四 汇编程序上机训练-多重循环程序设计
一、上机环境:
Window7系统,MasmEditor软件
二、实验目的:
1. 学习并熟悉汇编的多重循环程序的设计。
2. 进一步熟悉在MasmEditor环境下完成汇编语言的编译、连接、运行、调试等操作。
三、实验内容:
例1:有十位同学的成绩分别是80,100,78,56,79,90,96,88,82,75;编程分别统计低于60分,60-69,70-79,80-89,90-99,100分的人数,并分别存入a100,b90,c80,d70,e60,f50单元中。
参考源程序如下:
DATA SEGMENT
STUNUM DB 10;统计的总人数为10人
GRADE DB 80,100,78,56,79,90,96,82,88,75
A100 DB 0;存放统计结果
B90 DB 0;
C80 DB 0;
D70 DB 0;
E60 DB 0;
E50 DB 0;
DATA ENDS
(1)____________;定义堆栈段
DW 10DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
START:
MOV AX,DATA MOV DS,AX
(2)____________;统计初始值为0
MOV B90,0
MOV C80,0
MOV D70,0
MOV E60,0
MOV F50,0
LEA BX,OFFSET STUNUM
(3)______________;循环次数赋初始值10,提示:循环次数为偏移地址为BX的内存单元的值
(4)______________;给CX的高位CH清零
LEA BX,OFFSET GRADE
COMPARE:MOV AX,[BX];取学生成绩
(5)___________;给AX的高位清零
CMP AX,60
(6)___________;成绩<60,则跳转到FIVE 代码段,执行F50+1
CMP AX,70
JB SIX;60=<成绩<70,则E60+1
CMP AX,80
JB SEVEN;70=<成绩<80,则D70+1
CMP AX,90
JB EIGHT;80=<成绩<90,则C80+1
(7)__________
JB NINE;90=<成绩<100,则B90+1
INC A100;成绩为100,则A100+1
JMP SHORT NEXT
FIVE: INC F50
JMP SHORT NEXT
SIX: INC E60 JMP SHORT NEXT
SEVEN: INC D70
JMP SHORT NEXT
EIGHT: INC C80
JMP SHORT NEXT
NINE: INC B90
NEXT: INC BX
LOOP COMPARE
(8)_______________;统计完毕,返回DOS
(9)____________
CODE ENDS
END START
四、实验报告要求:
1. 实验报告格式符合要求
2. 将以上源程序填写完整,并加以注释。
实验三 汇编程序上机训练-分支程序设计
一、上机环境:
Window7系统,MasmEditor软件
二、实验目的:
1、 掌握分支程序的结构。
2、 掌握分支程序的设计与调试方法。
3、 掌握循环程序设计与调试方法
4、 掌握正确分配与使用寄存器。
三、实验要求:
实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。 四、实验内容:
编程实现:分别统计下列20个数中大于5、小于零和大于零且小于等于5的数据个数,分别存入字节单元RES1、RES2和RES3中。
20个数如下:
BUFF DB -1, 20, 3, 30, -5, 15, 100, -54, 0, 4, 78, 99, -12, 32, 3, 23,
-7, 24, 60,-51
程序框图:
开始初始化:循环次数=20存储器指针指向数据缓存从数据缓存中取一数据该数大于5?单元RES1计数加1该数小于0?单元RES2计数加1单元RES1计数加1循环次数小于20?结束
提示:以上编程要求类似于实验四,大家参照实验四的源程序自己进行一下编程,除了参数名称不一样,其他基本相似。
五、实验报告要求:
3. 实验报告符合要求格式
4. 写出程序清单,并加以注释
实验四 汇编程序上机训练-循环程序设计
一、上机环境:
Window7系统,MasmEditor软件
二、实验目的:
学习并熟悉汇编的单循环程序的设计。在MasmEditor环境下完成汇编语言的编译、连接、运行、调试等。
三、实验内容:
编程实现:在自BLOCK开始的存储区域内有10个带符号数。试用冒泡排序法编写一个程序,使它们排列有序(从小到大排序,或者从大到小排序)。
分析:程序涉及多重循环程序的设计。
四、实验报告要求: 5. 实验报告符合要求格式
6. 写出程序清单,并加以注释
实验五 汇编程序上机训练-子程序设计
一、上机环境:
Window7系统,MasmEditor软件
二、实验目的:
1. 掌握住程序与子程序之间的调用关系及其调用方法
2. 掌握自程序调用过程中近程调用与过程调用的区别
3. 掌握通过堆栈传送参数的方法
三、实验内容:
有十位同学的成绩分别是80,100,78,56,79,90,96,88,82,75;编写一个子程序分别统计低于60分,60-69,70-79,80-89,90-100分的人数,跳出循环 开始