微机原理实验4(5页).doc
《微机原理实验4(5页).doc》由会员分享,可在线阅读,更多相关《微机原理实验4(5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-实验四:分支、循环程序设计一. 实验目的1 学习分支程序、循环结构程序的设计和调试方法;2 学习子程序的定义和调试方法;3 掌握分支、循环、子程序等程序的基本结构。二. 实验设备TDN 86/51或 TDN 86/88教学实验系统一台 三. 实验内容、步骤及要求1. 设计一数据块间的搬移程序数据块搬移的基本原则为:对于两个分离的数据块,从首地址或从末地址开始传送均可。对于有部分重叠的情况则:当源数据块首地址目的数据块首地址时,从数据块首地址开始传送数据。当源数据块首地址目的数据块首地址时,从数据块末地址开始传送数据。2求某数据区内负数的个数设数据区的第一单元存放区内单元数据的个数,从第二单元
2、开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包含负数的个数。3学生成绩名次表将分数为1100之间的10个成绩存入首址为3000H的单元中,3000H+I表示学号为I的学生成绩。编写程序能在3100H开始的区域排出名次表,3100H+I为学号I的学生名次。 4. 求无符号字节序列中的最大值和最小值设有一字节序列,其存储首地址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。四. 编程练习(A) 在3500H单元开始中输入数据:09H(数据个数)12H、
3、80H、78H、C8H、00H、00H、FEH、99H、34H,编写程序使其能分别求出数据区中的正数和负数以及零的个数,正数的个数放在3510H单元中,负数的个数放在3511H单元中,零的个数放在3512H单元中.(B) 有三个8位二进制数连续存放在03200H开始的内存单元中,设它们之中至少有两个数是相同的。编写程序找出与另外两数不同的数,把该数所在的地址(段内偏移地址)送到03204H单元,若三个数都相同则送0FFFFH到03204H单元。(C) 设数据段SCORE单元开始连续存放着20个学生成绩,编写程序统计其中90分数段的人数,并把统计结果存放到从TOT开始的数据块中。(数据为:64H
4、,61H,5DH,55H,52H,51H,44H,45H,47H,48H,4DH,4FH,3CH,3FH,40H,41H,33H,56H,59H,30H).(D) 找出一个数据块中的最大数。数据块从偏移地址3002H开始存放,数据块的长度以16位二进制形式存放在3000H、3001H单元,把找出的最大数放到3100H单元中,并把存放最大值的偏移地址存入3101H和3102H的存储单元中。假设数据块中的数都是8位无符号数。(E) 的值(字节数)分别由3000H、3001H、3002H单元的数决定,对应的结果分别存放在3005H、3006H、3007H单元中,完成下列方程: A (X0)Y= 0
5、(X=0) B (X200)Y= 50H (X=100) 00H (X50)五软件流程图和程序清单A)DATAS SEGMENTORG 3500H BUFSIZE DB 9 ;单元数据个数 NUM DB 12H,80H,78H,0C8H,00H,00H,0FEH,99H,34H ORG 3510H RESULT DB 3 DUP(0,0,0)DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX MOV DI,OFFSET NUM ;送数据地址到DI LEA BP,RESULT MOV SI,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 实验
限制150内