微机原理实验2编程实现循环程序.doc

微机原理实验2编程实现循环程序.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理实验2编程实现循环程序

微机原理实验 实验二 编程实现循环程序 编程实现:自行定义某班30个学生的某课程成绩(0~100分之间),要求: 统计=90分、80~89分、70~79分、60~69分、60分以下的人数,结果转为ASCII码显示出来(要求有分数段字符串提示,并每个分数段一行显示)。结果举例: =90:3 80-89:4 70-79:11 60-69:10 60:2 实验流程图: Y N Y N Y N Y N Y 程序: stack segment stack stack dw 100H dup(0) stack ends data segment BUF DW 62,73,32,74,66,54,71,65,97,98 DW 75,82,81,59,92,85,88,66,61,89 DW 63,98,88,43,39,96,66,45,12,20 COUNT EQU $-BUF ;COUNT的值为BUF所占的字节数 STR1 DB 60:,$ STR2 DB 60-69:,$ STR3 DB 70-79:,$ STR4 DB 80-89:,$ STR5 DB 90:,$ RES DW 30 DUP(?) ;在存储区RES中设置30个初值为0的数据 data ends code segment begin proc far assume ss:stack,cs:code,ds:data push ds sub ax, ax push ax mov ax, data mov ds, ax START: MOV CX,COUNT/2+1 ;设计数器初值 MOV DI,OFFSET RES ;取RES的首址 MOV SI,OFFSET BUF-2 ;取BUF的首址 LURY: INC SI INC SI ;修改SI指针 DEC CX ;设循环次数CX JZ OUTPUT ;循环结束,则转OUTPUT MOV AX,[SI] ;取BUF中第一个数放到AX寄存器 CMP AX,60 ;将AX中数据和60进行比较 JB LOP1 ;小于60,则转LOP1 CMP AX,70 ;否则,继续与70进行比较 JB LOP2 ;小于70,则转LOP2 CMP AX,80 ;否则,继续与80进行比较 JB LOP3 ;小于80,则转LOP3 CMP AX,90 ;否则,继续与90进行比较 JB LOP4 ;小于90,则转LOP4 CMP AX,100 ;否则,继续与100进行比较 JB LOP5 ;小于100,则转LOP5 LOP1: MOV BX,[DI] INC BX MOV [DI],BX ;对小与60的数据计数,并把其放在RES的第一个字节中 JMP LURY ;转到LURY LOP2: MOV BX,[DI+2] INC BX MOV

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档