北京理工大学自动化专业微机原理软件实验报告
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
班级: 姓名: 学号:
微型计算机原理与接口技术软件实验报告
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
实验一
一.实验题目
1、学习并掌握IDE86集成开发环境的使用; 2、参考书例4-8,以单步形式观察程序的执行过程;
3、修改该程序,求出10个数中的最大值和最小值。以单步形式观察如何求出最大值、最小值。
二.实验目的
1、熟悉IDE86集成开发环境的使用。
2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。 3、锻炼动手编程,独立思考的能力。
三.实验内容
1、题目1的设计思路及流程图 a.设计思路
为实现求和的功能,首先将十个数存入内存中,设定AX为计算结果存储单元,CX为计数器,随后建立循环,将每个数依次加到AX上,直至CX=0,最后将AX中存储的结果移动到SUM存储单元中,结束程序。 b.流程图
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
2、题目3设计思路及流程图 a.设计思路
为实现求取最大值最小值的功能,首先将十个数存入内存中,设定CX为计数器,将第一个数分别存入到MAX与MIN储存单元中,随后建立循环,将每个数依次与MAX(MIN)相比较,如果有大于(小于)MAX(MIN)中的,移入相应存储单元,直至CX=0。最后将MAX和MIN中存储的数据打印在屏幕上,返回DOS
b.
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
四.实验源程序 a.题目2源程序
DATA SEGMENT ;定义数据段
TABLE DB 12H,23H,34h,45h,56h ;10个加数
DB 67H,78H,89H,9AH,0FDH
SUM DW ? DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:DATA,ES:DATA
START: MOV AX,DATA
MOV DS,AX ;初始化DS MOV ES,AX ;初始化ES LEA SI,TABLE ;SI指向TABLE MOV CX,10 ;循环计数器 XOR AX,AX ;AX为中间结果
NEXT: ADD AL,[SI] ;把一个数加到AL中
ADC AH,0
;若有进位,则加到AH中
INC SI ;指向下一个数
LOOP NEXT ;若未加完,继续循环 MOV SUM,AX
;若结束,存结果于SUM
HLT ;结束
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
CODE ENDS ;代码段结束
ENDSTART ;汇编结束
b.题目3源程序
DATA SEGMENT ;定义数据段
TABLE DB 12H,23H,34h,45h,56h ;十个待比较数
DB 67H,78H,89H,9AH,0FDH
MAX DB ? MIN DB ?
A DB 'Max:','$' B DB 0DH,0AH,'Min:','$' DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA
MOV DS,AX
;初始化DS MOV ES,AX ;初始化ES LEA SI,TABLE
;SI指向TABLE
MOV CX,10 ;循环计数器 XOR AX,AX ;清空AX CLD ;清方向标志DF LODSB ;AL存入一个8位数 MOV MAX,AL ;将该数送MAX MOV MIN,AL
;将该数送MIN
DEC CX ;计数器减一 NEXT: LODSB ;取下一个数 CMP AL,MAX
;与MAX比较
JA LARGER ;若大于转LARGER CMP AL,MIN ;否则与MIN比较 JB SMALLER ;若小于转SMALLER
;屏幕提示字符串;定义代码段
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
JMP GOON ;否则转GOON
LARGER:MOV MAX,AL ;AL的值存入MAX JMP GOON ;转到GOON
SMALLER:MOV MIN,AL ;AL的值存入MIN GOON: LOOP NEXT
LEA DX,A
;CX-1,若CX≠0转NEXT
;获取A的首地址
;调用字符串显示功能
MOV AH,09H INT 21H MOV AL,MAX CALL DISPLAY LEA DX,B
;MAX值存入AL ;调用显示子程序
;获取B的首地址
;调用字符串显示功能
MOV AH,09H INT 21H MOV AL,MIN CALL DISPLAY MOV AH,4CH INT 21H
DISPLAY PROC
;MIN值存入AL ;调用显示子程序 ;调用返回DOS功能
;十六进制显示子程序 ;保持BX内容 ;保持CX内容
PUSH BX PUSH CX
MOV BH,AL
MOV CH,2 ;设置循环计数器
ROT: MOV CL,4 ;移位次数
ROL BX,CL MOV AL,BL AND AL,0FH
;清空AL高四位
ADD AL,30H ;0-9转换ASCII码 CMP AL,3AH JL PRIT
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
ADD AL,7H ;A-F转换ASCII码
PRIT:MOV DL,AL
MOV AH,2 ;调用字符显示功能 INT 21H DEC CH
;计数器-1
JNZ ROT ;CH≠0,继续循环 POP CX ;恢复CX内容 POP BX ;恢复BX内容 RET ;返回
DISPLAY ENDP CODE ENDS
;代码段结束
ENDSTART ;结束
五.实验运行结果 a.题目2运行结果
前五个数运算结束后寄存器状态:
图3 前五个数计算后寄存器状态
其中ax值为
图4 前五个数计算后AX的值
故此时前五个数之和为0104H。
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
前八个数运算结束后寄存器状态:
图5 前八个数计算后寄存器状态 其中ax值为
图6 前八个数计算后AX的值 故此时前八个数之和为026CH。 全部运算结束后,ax的值为:
图7 计算结束后AX的值 故十个数的和为0403H。
以TABLE开始的存储器单元中的内容如图8:
图8 TABLE开始的存储器单元中内容
b.题目3运行结果
图9 题目3的运行结果
六、实验中遇到的问题及解决方法
1、由于是第一次使用IDE86集成开发环境,在编译、连接和调试程序时,操作不熟练,造成了一些误操作。经过几次摸索之后,慢慢熟悉了该开发环境。
2、在题目3中,最开始时直接使用了DOS功能的2号功能,但输出结果错误。经过分析,该功能将16进制数直接当做ASCII码输出,导致错误。故专门编写了在屏幕上显示16进制的子程序,得到了正确的结果。
报告内容是结合文库下载的报告内容+同学的报告+自己的实验内容 编辑整理而成,如侵删
七、心得体会
通过这次上机实验,我熟悉了IDE86集成开发环境,对其编辑、编译、连接和调试的过程得到了初步的提高。与此同时,通过单步运行、单步跟踪、观察寄存器和标志寄存器的变化,对汇编程序的理解加深了一步。与此同时,在题目3中,我熟悉了汇编语言中子程序的编写与调用。可以说,这次实验达到了其应有的效果。
实验二
一、实验题目
1、求1到100 的累加和,并用十进制的形式将结果显示在屏幕上。要求实现 …… 此处隐藏:4964字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [文秘资料]班长职务辞职报告
- [文秘资料]完美的辞职报告
- [文秘资料]经典的员工辞职报告
- [文秘资料]医院口腔医生辞职报告
- [文秘资料]总经理辞职报告范文四篇
- [文秘资料]超市职员个人辞职报告
- [文秘资料]村妇联主任的辞职报告
- [文秘资料]辞职报告书格式
- [文秘资料]酒店辞职报告简单范文
- [文秘资料]联通的辞职报告
- [文秘资料]2017最新私企员工辞职报告范文
- [文秘资料]2019年度医院基层党组织书记抓党建述职
- [文秘资料]工作时间长辞职报告
- [文秘资料]辞职报告怎么写出来
- [文秘资料]个人能力原因辞职报告
- [文秘资料]网络工程师辞职报告
- [文秘资料]项目部辞职报告
- [文秘资料]缝纫工辞职报告怎么写
- [文秘资料]XXX州委书记述职报告
- [文秘资料]抓基层党建工作述职报告
- (王虎应老师讲课记录)六爻理象思维
- 八个常见投影机故障排除法
- 质量专业综合知识(中级)第一章质量管理
- 煤矿班组建设实施意见
- 我国快餐业与肯德基经营模式的比较与分
- 汽车保险杠模具标准化模架技术工艺研究
- 汽车二级维护作业团体赛比赛规程
- 装卸搬运工安全操作规程
- 高效的工作方法-刘铁
- 依据《生产安全事故报告和调查处理条例
- 2015专业PS夜景亮化效果图制作教程
- 企业劳动定额定员浅析
- 中枢神经系统医学影像学本科五年制第五
- 长城汽车参观探营第三站:研发试验中心
- 小升初语文专项训练
- 建筑工程质量检测资质分类与等级标准
- 周燕珉-我国养老社区的发展现状与规划
- 《生命里最后的读书会》读后感
- 实验室管理评审报告
- CCNA思科网院教程精华之网络基础知识




