当前位置:文档之家› 微机实验报告3

微机实验报告3

南京工程学院
电力工程学院
2011/ 2012 学年第 1 学期
实验报告
课程名称微机原理及应用
实验项目名称顺序结构程序设计
实验学生班级监控091
实验学生姓名
实验时间 2011.10.23
实验地点电力工程基础实验室8-216
实验报告成绩:评阅教师签字:
年月日电力工程学院二OO七年制
说明
1. 实验报告为实验的重要考核依据之一,每个实验必须定一份实验报告. 本实验报告原则上要求手写。

2.本实验报告各项内容的具体格式、字数可由指导教师根据实验具体情况提出具体要求。

各项内容可另附页,为便于归档,附页尺寸不得大于本实验报告尺寸,并注意粘牢于附页粘贴处。

3. 实验报告封面中的“实验名称”应为实验教学大纲上所列的规范名称,“实验地点”应写出实验室的具体名称。

请确认无误后再填写。

4. 实验报告的建议格式为:
一、实验目的和要求;
二、主要实验仪器和设备;
三、本次实验内容
(一)实验项目名称(按本次实验各项目填写)
1、原理或接线图
2、实验步骤及注意事项
3、实验预习过程中所遇到问题……
四、实验记录及数据处理(主要内容包括实验具体实施步骤、实验原始数据、计算过程与结果、数据曲线、图表等。

具体格式按指导教师要求)
五、实验结论(主要内容包括本实验小结、实验体会或疑问等。

具体格式按指导教师要求)
5. 实验成绩由实验预习、实验表现、实验报告三部分组成。

其中前两项各占总成绩的30%。

实验报告成绩依据报告的科学性、全面性、规范性及书写态度综合考核。

实验报告采用百分制,占实验总成绩的40%,教师请阅本报告后需签字并给出实验报告百分制成绩。

6. 实验报告需按要求时间以班级为单位交给指导教师,最长时间不得超过两周,实验报告如有明显抄袭者或不交者,实验总评成绩按 0 分记。

一、实验目的和要求
1、熟悉汇编语言集成编译软件的使用方法。

2、熟悉8086汇编指令,能自己编写简单的程序并调试运行验证结果。

二、实验任务
学习使用汇编语言集成编译软件,软件提供了编辑、编译、运行、调试汇编语言程序的集成环境。

验证及编写、调试实验内容。

三、主要实验设备和软件
星研集成环境软件
四、实验内容
1、实验题目:
(1)编写程序,计算{W-(X+120)*Y+200}/Z的值,其中W、X、Y、Z均为带符号数。

将计算结果分别存放在以RESULT单元开始的数据区中。

(2)、程序清单:
DATA SEGMENT
W DW 1200 ;数据定义
X DW -30
Y DW -25
Z DW 500
RESULT DW 2 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AX,X
ADD AX,120 ;X+120,注意标志位变化
IMUL Y ;(X+120)*Y,注意标志位变化
MOV CX,AX
MOV BX,DX ;乘积暂存BX:CX
MOV AX,W ;将W带符号位扩展
CWD
SUB AX,CX
SBB DX,BX ;结果在DX:AX中,注意标志位变化
ADD AX,200 ;实现W-(X+120)*Y+120,注意标志位
变化
ADC DX,0 ;结果在DX:AX中,注意标志位变化 IDIV Z ;商在AX中,余在DX中,注意标志位变化
MOV RESULT,AX ;存放结果到数据区
MOV RESULT+2,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
(3)、运行结果截屏
X+120,注意标志位变化
(X+120)*Y,注意标志位变化
结果在DX:AX中,注意标志位变化
实现W-(X+120)*Y+120,注意标志位变化
商在AX中,余在DX中,注意标志位变化
观察得RESULT的商为7H,余为96H(对应观察AL,DL)。

验证程序成功。

(4)、分析与思考:此实验比较简单,只是要注意符号位的变化和除法的扩展等。

2、编写程序:
(1)、实验题目:实现组合BCD码转换成ASC码并送CTR显示。

(2)、程序清单:
CODE SEGMENT
ASSUME CS:CODE
BEGIN : MOV AL,27H ;27的BCD码,先显示高位
MOV DL,AL
MOV BL,AL
MOV CL,4
SHR DL,CL
OR DL,30H
MOV AH,38H
MOV AH,2H
INT 21H ;显示“2”
MOV DL,BL
AND DL,0FH
OR DL,30H
MOV AH,2
INT 21H ;显示“7”
MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN
(3)、运行结果:截屏
回显“2”
回显“7”
(4)、分析与思考:此实验主要是关于AL累加器的变化,由于在使用显示指令后AL中的值发生了变化,所以在一开始将AL赋给BL,保持一下,到显示'7'时再回送即可。

3.编写程序:
(1)、实验题目:试编写:设XYZ已定义为字节变量,若X和Y各存放一个32位(四字节)的无符号数,存放顺序是低位字节在先,试写出将X 和Y相加,结果存入Z的程序段。

(2)、程序清单:
DATA SEGMENT
X DB 0CDH,0ABH,34H,012H
Y DB 0BAH,0DCH,21H,43H
Z DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA BX,X
MOV AL,[BX]
ADD AL,Y
MOV Z,AL
MOV AL,[BX+1]
ADC AL,Y+1 ;保持低位的进位,所以用ADC
MOV Z+1,AL
MOV AL,[BX+2]
ADC AL,Y+2
MOV Z+2,AL
MOV AL,[BX+3]
ADC AL,Y+3
MOV Z+3,AL
MOV AH,4CH
INT 21H
CODE ENDS
END START
(3)、运行结果截屏
注:本实验中X=1234ABCDH,Y=4321DCBAH。

应实验要求低字节在先存放,最后应得Z=55568887H。

现用截屏进行验证。

得Z=55568887H。

验证程序成功。

(4)、分析与思考:此实验主要是将两个32位无符号数存放在以字节为单元的存储空间中进行加和计算,要注意的就是低位的进位。

四、实验思考题
编写程序实现运算(式中W1W2W3W4为字节变量,运算结果的商存放在W3,余数存放在W4中):(W1 -W2)/10 W3,W4。

程序清单:DATA SEGMENT
W1 DW 98H
W2 DW 12H
W3 DW ?
W4 DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,W1
MOV BX,W2
SUB AX,BX
SUB DX,DX
MOV BX,10H
DIV BX
MOV W3,AX
MOV W4,DX
MOV AH,4CH
INT 21H
CODE ENDS
END START
(注:最后W3=0008H,W4=0006H,已经经过EMU8086调试验证程序成功。


五、实验结论
此次顺序结构实验不是很难,主要是锻炼编写和调试基本代码的能力,进一步熟悉指令,伪指令等,用EMU8086感觉比clab还上手,很好用,查标志、查变量都一步到位。

相关主题