实验7子程序设计实验ppt课件_第1页
实验7子程序设计实验ppt课件_第2页
实验7子程序设计实验ppt课件_第3页
实验7子程序设计实验ppt课件_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验七子程序设计实验,实验步骤(DOS环境):1、输入程序经汇编、连接产生EXE文件,进入DEBUG进行程序调试;2、用U反汇编命令查看源程序;3、用E命令输入8个字节的数据;4、用T命令单步运行程序,了解子程序的调用过程以及子程序的返回;5、用G运行程序,在AX寄存器里查看运行结果,AX=F904。要点:堆栈的功用以及栈指针的变化情况;子程序调用指令CALL与转移指令JMP的区别。,1,DATASSEGMENTORG3000HXDB12H,0f3H,45H,77H,20H,11H,22,0DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSSTART:MOVAX,DATASMOVDS,AXMOVSI,OFFSETX;或MOVSI,3000HMOVCX,8CALLBRANCHMOVAH,4CH;返回DOSINT21HBRANCHPROCNEAR;子程序JCXZA4;(cx)=0,转A4,此指令无用PUSHSI;保存子程序所用寄存器PUSHCXPUSHBXMOVBH,SI;BH存放最大值MOVBL,BH;BL存放最小值A1:LODSB;(DS:SI)AL,SI+1SICMPAL,BH;AL-BH,JBEA2;ALBH,转A2MOVBH,AL;ALBH,ALBHJMPA3;AL大于最大值,不可能小于最小值A2:CMPAL,BL;ALBH,与BL比较JAEA3;ALBL,转A3MOVBL,AL;ALBL,ALBLA3:LOOPA1;CX-1CX,CX0转A3MOVAX,BX;最大值最小值存入AXPOPBX;恢复寄存器,先入栈的后弹出POPCXPOPSIA4:RETBRANCHENDPCODESENDSENDSTART,实验7-1求无符号数中的最大值和最小值。算法:BH存放最大值,BL存放最小值SI指向无符号数。若无符号数大于最大值或小于最小值,则以无符号数替换BH或BL中的数。,2,4.4编写程序,把CHAR1中的小写字母分别转换成大写字母,并存放在CHAR2中。datasegmentCHAR1DBabcdefCHAR2DB$-CHAR1DUP(0);数值表达式$-CHAR1=6dataends提示:A=a20h,Z=z-20h编写一循环程序,循环6次。循环程序其循环体,每次从CHAR1中取一字母的ASCLL码,将其减去20h后存入CHAR2中。,3,4.6从BUF地址处起,存放有20个字节的字符串,设其中有一个以上的A字符,编程查找出第一个A字符相对起始地址的距离,并将其存入LEN单元。DATASEGMENTBUFDBacdfAfdsAd,234def;共计20个字节LENDB?DATAENDS提示:令BX(或SI,DI)指向BUFMOVBX,OFFSETBUF编写循环程序,把BX所指字符的与A比较,若相同,则BX与BUF的差值即为所求距离。CMPBX,A;可以不加byteptrje/jzquit;退出循环,计算所求距离,4,思考题:1、试验7-1程序,其调用子程序前后堆栈指针sp及相应堆栈内容如何变化?若求有符号数中的最大值和最小值,程序如何修改?2、编写4-4题对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论