社会主义

经济发展

人力资源

电子商务

发展趋势

社会保障

持续发展

主要内容

文化产业

知识产权

社会发展

文化建设

公共关系

注意事项

思想政治

课堂教学

中小企业

商业银行

高等教育

少数民族

历史事件

科学发展

中国古代

基本原则

首页 理论教育 实现循环程序结构的方法

实现循环程序结构的方法

时间:2022-02-28 理论教育 版权反馈
【摘要】:分析 这是一个求累加的程序。计数的初值为10,用CX表示,每加一次,计数值减1。其程序流程图如图4-9所示。在实际问题中,常常有循环次数未知的情况。对于这类问题,可以通过测试该条件来实现对循环的控制,这种方法就是条件控制法。例如,在数据和表格处理问题中,往往在数据和表格结尾添加一个结束标志,作为循环操作处理的条件,通过与结束标志的比较结果来控制循环。

4.4.2 实现循环程序结构的方法

汇编语言的循环结构与高级语言的相比,有其自身的特点,常用的循环控制方法有计数控制、条件控制。

1.计数控制

计数控制适用于循环次数已知的情况,包括正计数与倒计数两种方法。设循环次数为N,则基本结构如下:

(1)正计数。

MOV CX,0 ;设置计数器初值为0

NEXT: …

INC CX;计数器值加1

CMP CX,N;CX与 终值N比较

JNE NEXT;不为0,到NEXT处继续

(2)倒计数。

MOV CX,N;设置计数器初值为N

NEXT: …

DEC CX;CX值减1

JNZ NEXT;不为0,到NEXT处继续

利用LOOP指令可简化为:

MOV CX,N

NEXT: …

LOOP NEXT

显然,使用倒计数更简洁。在采用计数方法控制循环结构时,使用倒计数法。

【例4-8】 设内存BUF开始的 单元中依次存放着10个8位无符号数,求它们的和并放在SUM单元中,试编写程序。

分析 这是一个求累加的程序。计数的初值为10,用CX表示,每加一次,计数值减1。其程序流程图如图4-9所示。

img81

图4-9 例4-8程序流程图

DATA SEGMENT

BUF DB X1,…,X10

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

LEA SI,BUF;设 地址 指针

MOV CX,10;设计数初值

XORAX,AX;设累加器初值,清零

AGAIN:ADD AL,[SI]

ADC AH,0

INC SI;改变指针

DEC CX

JNZ AGAIN;判断循环是否结束

MOV SUM,AX

MOV AH,4CH;返回DOS

INT 21H

CODE ENDS

END START

【例4-9】 编程实现将以BUF为首地址的10个字数组传到以BUF1为首地址的存储区。

分析 本题设置两个指针分别指向BUF和BUF1的首地址,每传一个数,指针指向下一个地址。其流程图如图4-10所示。

img82

图4-10 例4-9程序流程图

程序如下:

DATA SEGMENT

BUF DW X1,…,X10

BUF1 DW 10 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

LEA SI,BUF

LEA DI,BUF1;设置指针初始值

MOV CX,10;设置计数初值

LP:MOV AX,[SI]

MOV[DI],AX;将BUF的内容送BUF1

ADD SI,2

ADD DI,2;修改指针

DEC CX

JNZ LP;判断循环次数是否结束

MOV AH,4CH;返回DOS

INT 21H

CODE ENDS

END START

【例4-10】 在给定n个16位数组中,找出大于零、等于零和小于零的个数,将结果紧跟着原数组存放。

分析 这是一个统计问题,须设定3个计数器分别统计三种情况下的结果。其流程图如图4-11所示。

img83

图4-11 例4-10程序流程图

程序如下:

DATA SEGMENT

BUF DW X1,X2,X3,…,Xn

COUNT EQU$-BUF ;COUNT的值为BUF所占的字节数

PLUS DB ?;存放正数的个数

ZERO DB?;存放零的个数

MINUS DB?;存放负数的个数

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV CX,COUNT

SHRCX,1;相当于除以2,正好为BUF中的数;据个数

MOV DX,0;设定计数器初值

MOV AX,0;设定计数器初值

LEA BX,BUF;取BUF的偏移地址

LP:CMP WORD PTR[BX],0

JG E PLU;大于等于0,则转PLU

INC AH;<0,则统计

JMP NEXT

PLU:JZ ZER;=0,则转ZER

INC DL;>0,则统计

JMP NEXT

ZER:INC DH;=0,则统计

NEXT:ADD BX,2;改变原数组指针

LOOP LP

MOV PLUS,DL

MOV ZERO,DH

MOV MINUS,AH

MOV AH,4CH;返回DOS

INT 21H

CODE ENDS

END START

2.条件控制

在实际问题中,常常有循环次数未知的情况。此时,就必须通过特定条件来控制循环。对于这类问题,可以通过测试该条件来实现对循环的控制,这种方法就是条件控制法。在实际问题中,循环次数未知的循环是很多的。例如,在数据和表格处理问题中,往往在数据和表格结尾添加一个结束标志,作为循环操作处理的条件,通过与结束标志的比较结果来控制循环。

【例4-11】 从键盘输入一系列字符,以字符“$”为结束符,然后对其中的非数字字符进行统计。程序流程图如图4-12所示。

img84

图4-12 例4-11程序流程图

程序如下:

DATA SEGMENT

BUF DB 50 DUP(?)

COUNT DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MOV AX,DATA

MOV DS,AX

START:LEA BX,BUF

INPUT:MOV AH,01H;调1号从键盘上输入一个字符

INT 21H

MOV[BX],AL;存入BUF存储区

INC BX

CMP AL,′$′;比较该字符与“$”

JNZ INPUT

LEA BX,BUF;将指针重新指向BUF首地址

NEXT:MOV CL,[BX]

INC BX

CMP CL,′$′;取的字符与“$”比较

JZ EXIT;相等,则退出

CMP CL,30H;与0的ASCII码比较

JB COUT

CMP CL,39H;与9的ASCII码比较

JBE NEXT

COUT:INC COUNT;统计非数字字符个数

JMP NEXT

EXIT:MOV AH,4CH;返回DOS

INT 21H

CODE ENDS

END START

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈

热门文章

绩效评价社会调查方法

绩效评价社会调查方法...

招标投标领域存在的主要问题与对策建议

招标投标领域存在的主要问题...

微波传输方式与传输特点

微波传输方式与传输特点

备用信用证通俗解释

备用信用证通俗解释

庞大的鸟类家族_动物世界大百科

庞大的鸟类家族_动物世界大百科

相关推荐

  • 循环程序结构形式
  • •用语句实现循环
  • 循环经济的实现对策
  • 浅谈实现循环经济的途径
  • 农业循环经济的实现方式
  • 实现优生的方法
  • 方法重载实现的多态
  • 4.5.1 导航的实现方法
  • 物理学的循环方法
  • 方法覆盖实现的多态
  • 战略循环的学习方法
  • 循环经济评价方法
  • 室内循环健身跑的锻炼方法
  • 实现平等的不同方法
  • 的程序结构
  • 的基本程序结构
  • 宝宝实现营养均衡的方法
  • 传统数据共享的实现方法

深圳SEO优化公司金昌SEO按天扣费哪家好黔南SEO按天收费公司宁德seo网站推广价格东营百度标王推荐抚州模板推广武汉外贸网站建设多少钱南阳优化哪家好泉州百度网站优化潜江SEO按天收费哪家好陇南网站建设设计报价大芬网站建设哪家好海西高端网站设计报价飞来峡模板推广哪家好坪山网站定制公司白银模板网站建设哪家好张家界企业网站建设公司遂宁网页设计柳州网站建设设计金昌品牌网站设计价格北海网站搜索优化报价呼和浩特网站建设哪家好江门网站优化排名公司聊城网站优化软件价格鸡西网络营销多少钱清徐seo优化报价肇庆建设网站推荐金昌网站优化推广报价池州建网站公司秦皇岛SEO按效果付费报价镇江百姓网标王推广价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化