欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPT文档下载  

    实验六循环、子程序结构程序设计.ppt

    • 资源ID:248336       资源大小:410KB        全文页数:9页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验六循环、子程序结构程序设计.ppt

    实验六 循环、子程序结构程序设计,实验目的 1掌握循环结构程序设计的基本方法。2掌握循环程序中重复控制指令的使用。3掌握循环结构程序设计的组成部分和基本结构形式。4掌握子程序设计的基本方法。5掌握子程序中调用和返回指令的使用。6掌握子程序设计时参数传递的几种方法。实验学时 2 学时 实验器材 PC 微机及软件。实验原理 1循环结构,(1)循环结构将重复执行循环体中的语句,直到循环条件不成立。(2)循环结构程序由初始化、循环处理、循环控制和循环结束 4部分组成,循环控制条件有用计数控制循环和用条件控制循环两种方式。(3)循环结构程序的基本结构形式有“先执行,后判断”和“先判断,后执行”两种。2子程序:子程序又称过程,用过程定义伪指令 PROC/ENDP 进行定义,并集中存放在存储区的特定区域构成子程序库,需要时,用调用指令 CALL调用。子程序执行完毕,应该返回到调用指令的下一条指令继续执行。实验内容与步骤 1在数据段中有如下数据区,2,-3,0,5,-7,0,0,8,6,-9,统计该数据区中正数,0,负数的个数。参考程序如下:(程序名:SY6-1.ASM)data segment var db 2,-3,0,5,-7,0,0,8,6,-9 xx db?;存正数个数 yy db?;存负数个数 zz db?;存 零个数 data ends code segment assume cs:code,ds:data start:mov ax,data,mov ds,ax mov ah,0;AH 存正数个数 mov al,0;AL 存负数个数 mov bh,0;BH 存零个数 mov si,offset var mov cx,xx-var;CX 数据个数 go:cmp byte ptr si,0 jz zero jns plus inc al jmp next zero:inc bh jmp next plus:inc ah next:inc si loop go mov xx,ah;将个数存入存储单元 mov yy,al mov zz,bh mov ah,4ch int 21h code ends end start(1)输入程序并检查无误,经汇编、连接后产生正确的可执行文件 SY6-1.EXE。(2)执行可执行文件,可以看到执行正常,但是没有任何输出,可以使用 DEBUG来调试。,(3)用 DEBUG 的 U CS:0000 查看 MOV AX,XXXX(DATA)语句,即得到数据段段地址 DS=XXXX。(4)用 G 命令执行,10 个数据后存个数,分别为 4,3,3,调试过程如下:C:DEBUG SY6-1.EXE 一 U;反汇编 2CA2:0000 B8A12CMOV AX,2CA1 2CA2:0003 8ED8MOV DS,AX 2CA2:0005 B400MOV AH,00 2CA2:0007 B000MOV AL,00 2CA2:0009 B700MOV BH,00 2CA2:000B BE0000MOV SI,0000 2CA2:000E B90A00MOV CX,000A 2CA2:0011 803C00CMP BYTE PTR SI,002CA2:0014 7407JZ001D 2CA2:0016 790AJNS 0022 2CA2:0018 FEC0INC AL 2CA2:001A EB08JMP 0024 2CA2:001C 90NOP 2CA2:001D FEC7INC BH 2CA2:001F EB03JMP 0024 U 2CA2:0021 90NOP 2CA2:0022 FEC4INC AH 2CA2:0024 46INC SI 2CA2:0025 E2EALOOP 0011 2CA2:0027 88260A00MOV 000A,AH 2CA2:002B A20B00MOV 000B,AL 2CA2:002E 883E0C00MOV 000C,BH 2CA2:0032 B44CMOV AH,4C 2CA2:0034 CD21INT 21 一 g=0 32 AX=0403 BX=0300 CX=0000 DX=0000 SP=0000 BP=0000 SI=000A DI=0000,DS=2CA1 ES=2C91 SS=2CA1 CS=2CA2 IP=0032 NV UP EI PL NZ NA PE NC 2CA2:0032 B44CMOV AH,4C 一 d 0000 000f;10 个数据后存个数,分别为 4,3,3 2CA1:0000 02 FD 00 05 F9 00 00 08-06 F7 04 03 03 00 00 00.2编程序求下列和值:S=(123)(1234)(12345)将和值存在数据段偏移量为 0100H 的单元中。参考程序如下:(程序名:SY6-2.M)data segment org 0100h var db?;VAR 存放和值 data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov ah,3;调用求和子程序 call sum mov dh,bh,mov ah,4;调用求和子程序 call sum add dh,bh mov ah,5;调用求和子程序 call sum add dh,bh mov var,dh;和存入VAR mov ah,4ch int 21h sum proc near;求累加和子程序 mov ch,0;入口参数:AH 终值 mov bh,0;出口参数:BH 累加和 go:inc ch add bh,ch;CH:计数器 cmp ah,ch jnz go ret sum endp code ends,end start(1)输入程序并检查无误,经汇编、连接后产生正确的可执行文件 SY6-2.ASM。(2)执行可执行文件,可以看到执行正常,但是没有任何输出,可以使用 DEBUG来调试。(3)用 DEBUG 的 U CS:0000 查看 MOV AX,XXXX(DATA)语句,即得到数据段段地址 DS=XXXX。(4)用 G 命令执行,调试过程如下:C:DEBUG SY6-2.EXE 一 U 00 2E 36E6:0000 B80020MOV AX,2000 36E6:0003 8ED8MOV DS,AX 36E6:0005 B403MOV AH,03 36E6:0007 E81800CALL 0022 36E6:000A 8AF7MOV DH,BH 36E6:000C B404MOV AH,04 36E6:000E E81100CALL 0022 36E6:0011 02F7ADD DH,BH 36E6:0013 B405MOV AH,05 36E6:0015 E80A00CALL 0022 36E6:0018 02F7ADD DH,BH,36E6:001A 88360001MOV 0100,DH 36E6:001E B44CMOV AH,4C 36E6:0020 CD21INT 21;以下为子程序 36E6:0022 B500MOV CH,00 36E6:0024 B700MOV BH,00 36E6:0026 FEC5INC CH 36E6:0028 02FDADD BH,CH 36E6:002A 3AE5CMP AH,CH 36E6:002C 75F8JNZ 0026 36E6:002E C3RET 一 G=0 C;观察第一次求和,DH=06H AX=0300 BX=0600 CX=032F DX=0600 SP=0000 BP=0000 SI=0000 DI=0000 DS=2000 ES=36D6 SS=36E6 CS=36E6 IP=000C NV UP EI PL ZR NA PE NC 36E6:000C B404MOV AH,04 一 G=0 13;观察第二次求和,DH=10H AX=0400 BX=0A00 CX=042F DX=1000 SP=0000 BP=0000 SI=0000 DI=0000 DS=2000 ES=36D6 SS=36E6 CS=36E6 IP=0013 NV UP EI PL NZ AC PO NC 36E6:0013 B405MOV AH,05 一 G=0 1E;观察第三次求和,,DH=1FH AX=0500 BX=0F00 CX=052F DX=1F00 SP=0000 BP=0000 SI=0000 DI=0000 DS=2000 ES=36D6 SS=36E6 CS=36E6 IP=001E NV UP EI PL NZ NA PO NC 36E6:001E B44CMOV AH,4C 一 d 0100 0101;观察存储单元 2000:0100 1F 实验注意事项 1程序的执行可用DEBUG 的G 命令,根据 U命令显示的地址,使用 G 命令执行到具体地址,可以用 G=地址地址地址,也可用T 命令单步跟踪执行。2当循环体中处理部分也是循环结构时,就构成循环套循环的双重循环,依次类推可构成多重循环。实验与思考1编程序计算_S=1+2+3+.+10,并把和放在_BL中。(用_LOOP_指令)2从_3000H_内存单元开始的_100_个字节存储单元全部清0。3总结计数控制循环程序的设计方法。4对内存单元_3000H_开始的_100_个存储单元用_E_命令输入任意数。,

    注意事项

    本文(实验六循环、子程序结构程序设计.ppt)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开