- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二 循环与子程序程序设计
一、实验目的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从键盘输入。
三、实验设备PC机一台
四、实验步骤1) 按程序流程图编制实验程序。2) 输入源程序。
3) 汇编、连接程序,执行程序,检查结果。4)对内存单元3000H开始的100个存储单元用E命令输入任意数。
5) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。
6) 用D命令检查执行结果。
五、实验报告的要求列出源程序。
2)对程序中用到的寄存器说明其功能。
3)总结计数控制循环程序的设计方法。
4) 说明怎样使用DEBUG进行程序调试的。调试过程中所遇到的问题是如何解决的。
实验2-1
源程序:
DATA SEGMENTBUF DB 1+2*3+3*4+4*5+...+N(N+1)=$
DATA ENDS
STACK1 SEGMENT PARA STACKDW 20H DUP(0)
STACK1 ENDS
CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATA
START:MOV AX,DATAMOV DS,AXMOV DX,01HMOV BX,01H
L1:INC BXMOV AX,BXINC AXMUL BL;(进行乘法运算,bl作为乘数)ADD DX,AX;(DX作为累加变量)CMP AX,200;N(N+1)是否大于200JBE L1MOV BX,DXLEA DX,BUFMOV AH,09HINT 21H;输出字符串MOV CX,4
LOP:MOV AX,4MOV DX,BXMUL CLSUB AX,4MOV AH,ALMOV AL,CLMOV CL,AH;SHR DX,CL;cl作为移位位数寄存器AND DX,0FHCMP DX,0AHJBE L2ADD DX,7H
L2:ADD DX,30HMOV CL,AL;MOV AH,02HINT 21HLOOP LOP;输出数据MOV AH,4CHINT 21H
CODE ENDS
END START
运行结果:实验2-2
源程序:
stack1 segment para stackdw 20h dup(0)
stack1 ends
code segmentassume cs:code,ss:stack1
start:mov ax,300hmov ds,axmov cx,100;cx作为循环变量
lop:mov bx,cx ;bx作为地址偏移mov al,0h ;al为0,目的是清零mov -1[bx],alloop lopmov ah,4chint 21h
code ends
end start
运行结果:
实验2-3
源程序:
data segmentBUF DB 09H,09H
data ends
stack1 segment para stackdw 20h dup(0)
stack1 ends
CODE SEGMENTassume cs:code,ds:data,ss:stack1,es:data
START:MOV AX,DATAMOV DS,AXAND CX,0000HMOV CL,09H;;cl作为循环变量
L1:MOV BUF,CLMOV CL,09H
L2:MOV BUF+1,CLMOV AL,10SUB AL,BUFMOV DL,ALOR DL,30HMOV AH,02HINT 21HMOV DL,*MOV AH,02HINT 21HMOV BL,10SUB BL,BUF+1MOV DL,BLOR DL,30HMOV AH,02HINT 21HMOV DL,=INT 21H;会运行一段小程序,使AX的值改变AND AX,0000HMOV AL,10SUB AL,BUFMOV DL,ALMUL
您可能关注的文档
最近下载
- XF 44-2015 消防头盔 XF 44-2015 消防头盔.pdf
- 2024-2025(最新版)人教版语文一年级上册第一单元教案(2024秋部编新教材).pdf VIP
- T∕CNFIA 135-2022 即食拌饭干制品.docx VIP
- 报关员的年终工作总结.pptx
- 小麦膜下滴灌丰产栽培技术规程(征求意见稿)编制说明.doc VIP
- T/CGCC 26-2018_食品用酒精保鲜剂.pdf VIP
- 工厂岗位职责说明书(岗位说明书).doc VIP
- 实验室危化品管理.pptx VIP
- 产品标识和可追溯性控制程序.docx VIP
- GB 50058-2014 爆炸危险环境电力装置设计规范(附条文说明).pdf VIP
文档评论(0)