北京邮电大学微机原理及接口技术软件件实验报告

上传人:第*** 文档编号:61718716 上传时间:2018-12-10 格式:DOCX 页数:37 大小:383KB
返回 下载 相关 举报
北京邮电大学微机原理及接口技术软件件实验报告_第1页
第1页 / 共37页
北京邮电大学微机原理及接口技术软件件实验报告_第2页
第2页 / 共37页
北京邮电大学微机原理及接口技术软件件实验报告_第3页
第3页 / 共37页
北京邮电大学微机原理及接口技术软件件实验报告_第4页
第4页 / 共37页
北京邮电大学微机原理及接口技术软件件实验报告_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《北京邮电大学微机原理及接口技术软件件实验报告》由会员分享,可在线阅读,更多相关《北京邮电大学微机原理及接口技术软件件实验报告(37页珍藏版)》请在金锄头文库上搜索。

1、信息与通信工程学院微机原理软件实验报告班级:学号:姓名:序号:时间:2015-11-62015-11-29实验二 分支,循环程序设计一、实验目的: 1.开始独立进行汇编语言程序设计; 2.掌握基本分支,循环程序设计; 3.掌握最简单的 DOS 功能调用.二、实验内容: 1.安排一个数据区(数据段),内存有若干个正数,负数和零.每类数的个数都不超过 9。 2.编写一个程序统计数据区中正数,负数和零的个数。 3.将统计结果在屏幕上显示。 4.(选做)统计出正奇数,正偶数,负奇数,负偶数以及零的个数。三、预习题: 1、十进制数 0 - 9 所对应的 ASCII 码是什么? 如何将十进制数 0 - 9

2、 在屏幕上显示出来? 答:十进制数09对应的二进制数为30H39H。要屏显0-9的数码,只需将AH置成02H(DOS功能调用),然后将要显示的数码的ASCII码存进DL里,然后执行INT 21H就可以打印字符。或者,若这些数码是以字符串的格式存储,则可以将AH置成09H,(最后以$字符结束,)然后将串首地址传给DS,然后执行INT 21H就可以打印字符串。2、如何检验一个数为正,为负或为零? 你能举出多少种不同的方法? 答:可以将待检验数与0比较(使用CMP指令后用JZ指令判断ZF是否为零),也可以将待检验数与80H相与,判断值。二是和0相比是否相等,然后用该数(假设为8位)和10000000

3、相与,取出符号位判断,可区分正负。本次试验中我使用的方法是与0比较,所有判决方法的核心思想要么是直接和0相比,要么使用逻辑或移位运算,取出符号进行判断。四、实验过程:流程图:定义数据段,将所需判别数据存入数据段,定义输出字符CX是否为0是 否CX=CX-1 BX中的数和0比较 大于0 小于0负数个数加1正数个数加1 等于00个数加1BX中的数与1相与,结果加到负偶数中BX中的数与1相与,结果加到正偶数中统计输出正数、负数、零,正负偶数,计算正负奇数输出结果结束代码:DATASEGMENT ;数据段BUFFDW 4,0,37,99,-9,-2,-87,0,76,11,0,-34,-11,0,22

4、 ;待判断数据COUNTEQU $-BUFF ;COUNT的值为BUFF所占的字节数POSI DB ?;正数ZERO DB ?;负数NEGT DB ? ;0 POSIEVEN DB 0 ;正偶数 POSIODD DB ? ;正奇数 NEGTEVEN DB 0 ;负偶数 NEGTODD DB ? ;负奇数POSICHAR DB Positive: $ ;用于打印提示的字符串定义NEGTCHAR DB Negtive: $ZEROCHAR DB Zero: $EVENCHAR DB Even: $ODDCHAR DB Odd: $CR DB 0DH,0AH,$ ; 回车换行的ASCII码DATAE

5、NDSSTACKSEGMENT STACK STACK ;堆栈段DB100DUP(?)STACKENDSCODESEGMENT ;代码段ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKBEGIN: PUSH DS XOR AX,AX PUSH AX ;返回DOS MOVAX,DATAMOVDS,AX ;给DS真正赋值MOVCX,COUNT SHRCX,1 ;相当于除2, 正好为BUFF中的数据个数MOVDX,0 ;设定初值:DH及DL分别为等于、大于零的个数MOVAH,0 ;设定初值:AH为小于零的个数LEABX,BUFF ;把BUFF中的第一个数存到BXAGAI

6、N:CMP WORD PTR BX,0 ;BUFF中的第一个数与0进行比较JGEPOSITIVE ;大于等于0时转POSITIVEINCAH ;统计小于零的个数 ADD WORD PTR BX,1AND NEGTEVEN,BX ;和1与之后的结果加到负偶数中JMPNEXTPOSITIVE: JZZERO ;等于0时转ZEROINCDL ;统计大于零的个数 ADD WORD PTR BX,1AND POSIEVEN,BX ;和1与之后的结果加到正偶数中JMPNEXTZERO:INCDH ;统计等于零的个数NEXTINCBX;修改地址指针INCBX LOOP AGAIN ;循环判断CX不为0 MO

7、VPOSI,DL ;保存结果,正数MOVZERO,DH ;0MOVNEGT,AH ;负数 MOV AH,POSI MOV AL,POSIEVEN SUB AH,AL ;计算正奇数个数 MOV POSIODD,AH MOV AH,NEGTMOV AL,NEGTEVEN SUB AH,AL MOV NEGTODD,AH ;计算负奇数个数PRINT: ;打印正数提示符和正数(奇偶)个数MOV AH,09HMOV DX,OFFSET POSICHARINT 21HMOV AH,02HMOV DL,POSIADD DL,30HINT 21HMOV AH,09HMOV DX,OFFSET EVENCHAR

8、INT 21HMOV AH,02HMOV DL,POSIEVENADD DL,30HINT 21HMOV AH,09HMOV DX,OFFSET ODDCHARINT 21HMOV AH,02HMOV DL,POSIODDADD DL,30HINT 21HMOV DX,OFFSET CRMOV AH,09HINT 21H;打印负数提示符和负数(奇偶)个数MOV AH,09HMOV DX,OFFSET NEGTCHARINT 21HMOV AH,02HMOV DL,NEGTADD DL,30HINT 21HMOV AH,09HMOV DX,OFFSET EVENCHARINT 21HMOV AH

9、,02HMOV DL,NEGTEVENADD DL,30HINT 21HMOV AH,09HMOV DX,OFFSET ODDCHARINT 21HMOV AH,02HMOV DL,NEGTODDADD DL,30HINT 21HMOV DX,OFFSET CR MOV AH,09HINT 21HMOV AH,09HMOV DX,OFFSET ZEROCHARINT 21HMOV AH,02HMOV DL,ZEROADD DL,30HINT 21HCODEENDSENDBEGIN ;代码段结束结果分析:数据区待统计的数据为:4,0,37,99,-9,-2,-87,0,76,11,0,-34,-

10、11,0,22实验结果如下图所示:本实验意在练习基本的分支、循环结构。关键的点在于和0比较,区分正负和零,然后在正数和负数中判断奇偶,这里巧妙地使用了和1与之后结果加和到偶数中,最后利用统计的数的个数减去偶数得奇数的方法。使得程序更加流畅和简洁,思路也更清晰。五、实验总结汇编程序同高级语言一样,在写代码前都要对实验做分析,设计好思路,这样写代码时思路才比较清晰,代码也比较容易写和查找错误。此次实验主要是循环和分支,也是用汇编语言编写的第一个程序,让我熟悉了汇编语言的基本写法,对很多理论课学到的知识都有了更深的了解。了解了怎样利用判别条件在不同的分支中跳转,循环的判别及循环过程。总而言之,此次实

11、验收获还是很多的,不仅加深了对这两种结构的了解,提升了自己设计程序的能力,并且也提升了自己排除bug的能力,进一步熟悉了第一个实验的整个流程。实验三 代码转换程序设计一、实验目的:1.掌握几种最基本的代码转换方法;2.运用子程序进行程序设计.二、实验内容: 1.从键盘上输入若干两位十进制数,寻找其中的最小值,然后在屏幕上显示出来. 2.两个十进制数之间的分隔符,输入结束标志自定,但要在报告中说明. 3.对输入要有检错措施,以防止非法字符输入,并有适当的提示. 4.将整个程序分解为若干模块,分别用子程序实现.在报告中要给出模块层次图.三、预习题: 1.如何将输入的两个字符(0 - 9)变为十进制

12、或二进制数?答:两字符减去0的ASCII码(30H)后,高位数乘以十加上低位数,即变为十进制数。 2.如何将选出的最小值(二进制或十进制)变为 ASCII 码再进行显示?答:本次实验是直接读入并存储数字的ASCII码,比较其大小,然后直接输出ASCII码。 3.你觉得采用二进制运算还是十进制运算更适合于这个实验?答:相比二进制,采用十进制运算更简洁,但需要和ASCII码进行转换。可直接使用数字对应的ASCII比较,分别比较十位和个位,最后直接输出字符即可。四、实验过程:模块层次图:主程序BEGIN读取输入子程序输出打印子程序找出最小数据子程序流程图:代码:DATA SEGMENT ;数据段INPUT DB 100 DUP(?)MINTM

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号