预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验二循环与子程序程序设计 实验目的 1)加深对循环结构的理解。 2)掌握循环程序的设计方法。 3)学习子程序的定义和调用方法。 4)掌握子程序、子程序的嵌套、递归子程序的结构。 5)掌握子程序设计、编制及调试。 6)熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 实验内容 1)编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。 2)将从3000H内存单元开始的100个字节存储单元全部清0。 3)编制在屏幕上显示九九乘法表的程序。 4)编制在屏幕上显示用*组成的三角形的程序。 5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。 6)编写一个递归子程序,计算指数函数Xn的值,其中X,n从键盘输入。 源程序 EXAM2-1 DATASEGMENT BUFDB’S=1+2×3+3×4+4×5+…+N(N+1)+…=’,’$’ RESDW4DUP(0),’$’ DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START:MOVAX,DATA MOVDS,AX MOVDX,OFFSETBUF MOVAH,09H INT21H MOVDX,1 MOVBL,2 NEXT:MOVAL,BL INCBL MULBL ADDDX,AX CMPAX,200 JNANEXT MOVCX,0004H MOVDI,OFFSETRES ADDDI,03H NEXT1:MOVAX,DX ANDAX,000FH CMPAL,0AH JBNEXT2 ADDAL,07 NEXT2:ADDAL,30H MOV[DI],AL DECDI PUSHCX MOVCL,04 SHRDX,CL POPCX LOOPNEXT1 MOVDX,OFFSETRES MOVAH,09H INT21H MOVAH,4CH INT21H CODEENDS ENDSTART 执行程序EXAM2-1·EXE,屏幕上显示结果: S=1+2×3+3×4+4×5+…+N(N+1)+…=045F EXAM2-2 ORG2000H 2000BF0030MOVDI,3000 2003B164MOVCL,64 2005C60500MOVBYTEPTR[DI],0 200847INCDI 2009FEC9DECCL 200B75F8JNZ2005 200DF4HLT EXAM2-3 DATASEGMENT ATADDB?,2AH,?,3DH,?,?,20H,'$' ATAD1DB?,2AH,?,3DH,?,?,0DH,0AH,'$' DATAENDS STACKSEGMENTSTACK DB20HDUP(0) STACKENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START: MOVAX,DATA MOVDS,AX MOVCL,09H MOVBL,00H OKL: MOVAL,00H INCBL OK1: INCAL PUSHAX CMPBL,AL JZOK MOVBH,AL MULBL MOVDI,OFFSETATAD CALLOKP POPAX JMPOK1 OK: MOVBH,AL MULBL MOVDI,OFFSETATAD1 CALLOKP POPAX LOOPOKL MOVAH,4CH INT21H OKPPROC PUSHAX PUSHBX PUSHCX ADDBX,3030H MOV[DI],BH MOV[DI+02H],BL MOVCX,0AH MOVDH,00H OKL2: CMPAX,CX JSOK2 ADDCX,0AH INCDH JMPOKL2 OK2: SUBCX,0AH SUBAX,CX MOVAH,DH ADDAX,3030H MOV[DI+04H],AH MOV[DI+05H],AL MOVDX,DI MOVAH,09H INT21H POPCX POPBX POPAX RET OKPENDP CODEENDS ENDSTART 执行程序EXAM2-2·EXE,屏幕上显示结果: 1*1=01 1*2=022*2=04 1*3=032*3=063*3=09 1*4=042*4=083*4=124*4=16 1*5=052*5=103*5=154*5=205*5=25 1*6=062*6=123*6=184*6=245*6=306*6=36 1*7=072*7=143*7=214*7=285*7=356*7=427*7=49 1*8=082*8=163*8=244*8=32