




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验二分支、循环程序设计一 . 实验目的 :1. 开始独立进行汇编语言程序设计 ;2. 掌握基本分支 , 循环程序设计 ;3. 掌握最简单的 DOS 功能调用 .二 . 实验内容 :1. 安排一个数据区 , 内存有若干个正数 , 负数和零 . 每类数的个数都不超过 9.2. 编写一个程序统计数据区中正数 , 负数和零的个数 .3. 将统计结果在屏幕上显示 .三 . 预习题 :1. 十进制数 0 - 9 所对应的 ASCII 码是什么 ? 如何将十进制数 0 - 9 在屏幕上显示出来 ?答:字符 0的 ASCII 码是 48, 所以十进制数 0 9对应的 ASCII 码是 48 57。先将十进制
2、数 + 0 ,再调用 DOS 显示单个字符功能即可将十进制数在屏幕显示出 来。2. 如何检验一个数为正 , 为负或为零 ? 你能举出多少种不同的方法 ?答:将数字与 0比较,大于零说明正数,小于零说明负数。 奇偶性用模 2的余数是否为 0来确定。四、创新功能:统计了正奇数、正偶数、负奇数、负偶数个数。五、程序运行结果原始数据:1,2,3,4,-5,-4,-3,-2,0,0,事先存在数据串的以 BUFF 为首地址的内存空间中运行结果:正确统计了 4个正数, 4个负数, 2个 0, 2个正奇数, 2个正偶数, 2个负奇数, 2个负偶数。 六、流程图: 七、程序代码分析:-显示字符串和字符的宏块PR
3、ESENT MACRO X; 显示单个字符MOV AH,02HMOV DL,XINT 21HENDMSTR MACRO STRING;显示字符串MOV AH,09HMOV DX,SEG STRINGMOV DS,DXLEA DX,STRINGINT 21HENDM-字符转 ASCII 码的宏块SHIFT MACRO XADD X,'0' ; 将数字转换成 ASCII 码显示 ENDMDATA SEGMENTNUM1 DB 0NUM2 DB 0NUM3 DB 0ZO DB 0统计正偶数的个数ZJ DB 0 统计正奇数的个数FO DB 0 统计负偶数的个数FJ DB 0 统计负奇数
4、的个数BUFF DB 1,2,3,4,-5,-4,-3,-2,0,0测试数据STRING1 DB'sum of positive:','$'说明性字符串STRING2 DB'sum of negtive:','$'STRING3 DB'sum of zero:','$'STRING4 DB'sum of positive odds:','$'STRING5 DB'sum of positive evens:','$'STRING6 DB
5、'sum of negtive odds:','$'STRING7 DB'sum of negtive evens:','$'DATA ENDSSTACK SEGMENT 'STACK'DB 100 DUP(?STACK ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA SI,BUFF将指针指向数据区待统计数据MOV CX,10 待测数据个数LOOP1: MOV AL,SICMP AL,0 与 0比较判断正负JG A 当前数 &
6、gt;0跳转到 A 处执行JL B 当前数 <0跳转到 A 处执行INC NUM3 当前数 =0 , 0个数的统计值 +1 AGAIN: INC SI修改指针指向下一个要判断的数 LOOP LOOP1JMP EXITA: INC NUM1CBW 将被除数扩展成 16位MOV BL,2IDIV BL 除 2判断奇偶CMP AH,0 判断余数是否为 0JNZ C 不为 0说明是正奇数INC ZO 否则正偶数的统计值 +1 JMP AGAINB: INC NUM2 同上CBWMOV BL,2IDIV BLCMP AH,0JNZ DINC FOJMP AGAINC: INC ZJ正奇数个数 +1
7、JMP AGAIN 回到程序循环中D: INC FJ 负奇数个数 +1JMP AGAIN回到程序循环中EXIT: SHIFT NUM1将所有统计值转换为对应 ASCII 码 SHIFT NUM2SHIFT NUM3SHIFT ZJSHIFT ZOSHIFT FJSHIFT FOSTR STRING1;显示字符串和对应统计PRESENT NUM1;显示正数个数PRESENT 0DHPRESENT 0AHSTR STRING2PRESENT NUM2;显示负数个数PRESENT 0DHPRESENT 0AHSTR STRING3PRESENT NUM3;显示零个数PRESENT 0DHPRESEN
8、T 0AHSTR STRING4PRESENT ZJ;显示正奇数个数PRESENT 0DHPRESENT 0AHSTR STRING5PRESENT ZO;显示正偶数个数PRESENT 0DHPRESENT 0AHSTR STRING6PRESENT FJ;显示负奇数个数PRESENT 0DHPRESENT 0AHSTR STRING7PRESENT FO;显示负偶数个数PRESENT 0DHPRESENT 0AHMOV AX,4C00HINT 21HCODE ENDSEND START八、实验总结:本次实验主要练习了分支循环程序的设计,即通过 CMP 语句后不同 的跳转地址来实现条件分枝,相当于高级语言中的 IF 语句。实验中 先通过数字与 0比较先判断正负, 其次再模二, 余数与 0比较判断奇 偶,相当于条件语句的嵌套,属于二重分支问题。在判断多个数字时 采用循环结构,先存入 CX 要判断的元素个数,相当于循环语句的控 制变量, 在高级语言中对应 for 语句中的 i 。 实验采取模块化设计, 将 ASCII 码转换、 字符的输出、 字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 协议书和合同怎么查找
- 租地协议书合同
- 求兼职主播合同协议书
- 租房协议书没有合同
- 双人餐饮合同协议书
- 合同违约协议书范本
- 运费协议书合同
- 种植基地终止合同协议书
- 男女合同协议书
- 网络员考试题及答案
- 员工手册-沃尔玛
- 全球视野下商业长期护理保险发展研究报告-中再寿20241214
- 学校领导班子素质培训计划和措施
- “人工智能+”山区学校校本课程开发(丽水学院)知道智慧树章节答案
- 中医体重管理
- 《矿浆管道施工组织设计》
- 高血压危象课件
- 2024年河北高中学业水平合格性考试生物试卷真题(含答案详解)
- 民航行业智能化民航运输与服务方案
- 消防器材使用技能培训
- GB/T 22671-2024外转子电动机试验方法
评论
0/150
提交评论