第五章基本程序设计技术.ppt

  1. 1、本文档共107页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DATA SEGMENT VARW DW 1101010010001000B CONT DB ? DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 BEGIN: MOV AX,DATA MOV DS,AX MOV CL,0 MOV AX,VARW LOP: TEST AX,0FFFFH ;测试(AX)是否为0 JZ END0 ;为0,循环结束 JNS SHIFT ;判最高位,为0则转SHIFT INC CL ;最高位为1,计数 SHIFT: SHL AX,1 JMP LOP END0: MOV CONT,CL ;存结果 MOV AH,4CH INT 21H CODE ENDS END BEGIN 四、多重循环程序设计 多重循环结构是指循环程序的循环体中又包含了另一个循环 例5.4.6 编写一程序,求级数12+22+32+…的前N项和。 对于N2的计算采用连加的方法,即是: N2 =N×N=N+N+…+N N 本题程序采用双重循环。内循环计算级数各项的值,外循环计算各级数项之和。 MOV DX,0 MOV CX,0 MOV CL,N MOV AX,0 MOV BX,CX ADD AX,CX DEC BX JNZ LOP2 ADD DX,AX LOOP LOP1 开始 外循环初始化:DX=0 CX= 级数项数N 内循环初始化: AX=0 BX=(CX) 求级数项:AX=(AX)+(CX) BX= (BX)-1 (BX)=0? 求级数和:DX=(DX)+(AX) CX= (CX)-1 (CX)=0? 存结果:SUM= (DX) 结 束 N Y N Y LOP2 LOP1 MOV SUM,DX DATA SEGMENT SUM DW ? N DB 20 DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX MOV DX,0 MOV CX,0 MOV CL,N ;设置外循环次数 LOP1: MOV AX,0 MOV BX,CX;设置内循环次数 LOP2: ADD AX,CX;求级数项的值 DEC BX JNZ LOP2;BX计数不为0,继续内循环 ADD DX,AX ;累加级数项 LOOP LOP1;CX计数不为0,继续循环 MOV SUM,DX;存级数和 MOV AH,4CH INT 21H CODE ENDS END START 5.4 子程序设计 子程序--在一个程序的不同的地方需要多次使用的某个程序段,将其进行独立编制。 调用与返回:在主程序中需要使用该功能时,就转移到子程序执行,执行完后又返回原程序继续执行。这样的程序结构称为子程序设计。 一、调用与返回指令 1、子程序的调用与返回 在汇编语言中,子程序是以“过程”的形式表示。根据被调用过程与调用程序是否在同一个段内,可以分为两种情况。 主程序与子程序同在一个段内。这时,子程序的调用与返回只需修改指令指针IP。 CODEA SEGMENT ... CALL PROCA AAA:

文档评论(0)

天马行空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档