第五章基本程序设计技术
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 21HCODE ENDS END START 5.4 子程序设计 子程序--在一个程序的不同的地方需要多次使用的某个程序段,将其进行独立编制。 调用与返回:在主程序中需要使用该功能时,就转移到子程序执行,执行完后又返回原程序继续执行。这样的程序结构称为子程序设计。 一、调用与返回指令 1、子程序的调用与返回 在汇编语言中,子程序是以“过程”的形式表示。根据被调用过程与调用程序是否在同一个段内,可以分为两种情况。 主程序与子程序同在一个段内。这时,子程序的调用与返回只需修改指令指针IP。 CODEA SEGMENT ... CALL PROCA AAA:
您可能关注的文档
最近下载
- 明代宗教信仰与思想控制.docx VIP
- 江苏省南通市2024-2025学年高二上学期期末学业质量监测语文试卷(含答案).pdf VIP
- 国就有成人演出的电影了?想看就要冒生命危险.pdf VIP
- 综合素质练习题及答案.doc VIP
- 2020-2021学年北京高三化学二轮复习 反应原理型简答题(突破二卷)(word版 含答案).docx VIP
- 电力拖动控制线路安装与检修(白银矿冶职业技术学院)知到智慧树答案.docx VIP
- 煤炭巷道掘砌工(高级工)资格考试题库(全真题库).docx VIP
- 影像叙事中情感共鸣生成机制.docx VIP
- 同轴二级圆柱齿轮减速器的设计(硬齿面).doc VIP
- 基于GPU多线程多通道图像高速重构方法、设备及介质.pdf VIP
原创力文档

文档评论(0)