汇编语言子程序实验_第1页
汇编语言子程序实验_第2页
汇编语言子程序实验_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、实验四子程序实验(一)本实验的目的在于让读者掌握同一模块调用的方法。(1) 实验目的掌握主程序与子程序之间的调用关系及调用方法。(2) 掌握子程序调用过程中近程调用与远程调用的区别。(3) 掌握通过堆栈转送参数的方法。(1) 实验内容将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程序HEXA薮现,在转换过程中,通过子程序DISP实现显示.(2) 编写一个主程序,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符b'的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符”b”

2、的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数).1. 实验说明(1) 第一个实验程序用子程序的近程调用实现。由于在调用HEXAS样程序时,子程序乂调用了DISP子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容看到两个子程序的返回地址值。由于是近调用,地址值只包括返回地址的段内偏移虽。在每个子程序的执行中,检查CS值是不变的。(2) 第二个程序是利用远调用的方法调用子程序的。在远调用情况下,主程序与子程序处在不同的逻辑代码段中,可在子程序执行中查看CS值,它与主程序中的CS值是不同的。子程序调用后,堆栈中保留了返回地址的段地址及段内偏移虽

3、。(3) 第二个程序中,主程序与子程序之间参数的传送是由堆栈实现的。一段是将参数(此处是串首址TABLE串的长度N及待统计的字符“b”)顺序压如堆栈,在子程序调用后,通过BP指针对堆栈中的参数访问,并将统计的结果通过堆栈返回。有关该方法的原理此处不再介绍。(1) 实验准备预习子程序设计的基本方法,根据实验内容要求,画出子程序及主程序的流程图。(2) 熟悉键盘键入字符串及用堆栈传送参数的程序段编制方法。2. 实验步骤(2) (1)编辑、汇编两个源程序,生成相应的可执行文件(。EXE用DEBU曲R命令,T命令或G命令和D命令检查远程调用及近程调用时堆栈的变化。特别是通过堆栈传送的参数和子程序取出的

4、参数是返回参数的详细过程。(3) 检查程序执行的结果是否正确。(1) 实验报告要求分析远程调用与近程调用的区别,在用DEBUG有关命令观察时,执行过程有何不同。(2) 说明用堆栈传送参数的过程及其具体方法。(3) 分析实验结果及所遇到问题,并说明解决的方法。参考程序清单(1)码型转换程序清单:;CONV.ASNDATASEGMENTBUFDB0ABH,0CDH,0DEH,01H,02H,03HDB3AH,4BH,5CH,6FHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,10LEABX,BUFAGAI

5、N:MOVAL,BXCALLHEXASCINCBXLOOPAGAINMOVAH,4CHINT21HHEXASCPROCNEARMOVDL,ALPUSHCXMOVCL,4SHRDL,CLPOPCXCALLDISP;显示高位HEX数MOVDL,ALANDDL,0FHCALLDISPRETHEXASCENDPDISPPROPCMPDL,9JBENEXTADDDL,7NEXT:ADDDL,30HMOVAH,2INT21H;显示RETDISPENDPCODEENDSENDSTART(2)统计并显示某键入字符的个数的程序:COUNTER.ASMDATASEGMENTCHARDB七BUFDB50H,?50H

6、DUPDATAENDSMCODESEGMENTASSUMECS:MCODE,DS:DATASTART:MOVAX,DATALEADX,BUFMOVAH,9INT21HLEASIBUFMOVCL,SI+1中为字符串长度指向串首址TABLE中为待查字符MOVCH,0;CXINCSIINCSI;SIMOVAL,CHARMOVAH,0;AXPUSHSIPUSHCXPUSHAX;参数送堆栈CALLCHECKPOPAX:统计个数在AL中MOVDL,CHARMOVAH,2INT21HMOVDL,ALANDDL,0FHCMPDL,9JBENEXTADDDL,7NEXT:ADDDL,30HMOVAH,2INT2

7、1H;显示统计个数MOVAH,4CHINT21HMCODEENDSSCODESEGMENTASSUMECS:SCODECHECKPROCFARPUSHBPMOVBP,SPMOVSI,BP+10MOVCX,BP+8MOVAX,BP+6XORAH,AHAGAIN:CMPAL.SIJNENEXT1INCAHNEXT1:INCSILOOPAGAINMOVBP+10,AXPOPBPRET4CHECKENDPENDSTARTC;TIIiDOISsystB32ci.(J*&se-DelucC:UUS456*ETE4C5:00878D3锵施。LEAGU0900DS:0080-9100*=14G4lS=

8、1*1C44C5:000B-D14C4-4C4:14C014C4:14V04C4:14E04C4:14F04G4:lSe014:15104C4:1520'4C-*:±53014C4:1540<1丽丽'4C4:eei04C4:跚四kCd:00O0,4C4:00404C4:B0L84C4:00604C4:0070BX=0900ES-14B4E80D00B8385=8968B8E2EeF50C888E055E5EED00001DOC400FE0B5760302CD760AD2BlCK=SQ0ASP=丽丽S3=1404CS=14CSIPOBBECALL001SJBP=0

9、S00SI=0000DI=6006NUUPElFLNZMAFONCECE4EC980746FF班26063FE6DCBlFF743E或ES13ED00-SB76-B42A-S35A-27F8-fE0B-C019-019724SE8404008?09SB46U.$4-FB4366(d94B0D44034585790C051088ED40814465c9BB224533AC2c?E8C0DBBCBFD2688ESF574EE-D4B43r70D0C082DL75OAB45DEEDi20-E2DD3GE4-4C0012CD-2190-8BUB-E5FEC9C:¥IWDOISsysteB32

10、ci.(i.eze-DebugC:kUSIX456«EIES=14C4-D14C44G4:14C04C4;14»014C4:14E04C4:14F014G4:156a4C4:1510434:15504C4:1504C4:154ad00004C4:0(dUU14C4:9Q104C4:A02R4C4:SQ304C4:O0404C4汩脸0C4:00C04C4:007OES-14B4E80D0RB8385896HB8E2E8FS0C08&E055ESEED014E53DAl0CFB0C0B080462620BOB707DSS-14C4CS-14CSIP-60OBcalleo

11、ivCb40ECFF7t匾BM0F56E8EC2656Bl76NA83C407削0$4&M3FF6跚56E6EB0B0100-8HC35EFF%-64ESM742A®3C4043E5A-2?FF00QZE8-EE3FB?EGC1B-CQ7S09iai?-ei?4asEB97T4894600ff436609480D44034585990G051088ED40814465C9BB22J1533RC2C7E8G0DBBCBFD2688E8F574EED_24-F20104-M-100O2D-MU2Bl?5BAD45D5EDL20£2HD-36IM4G80-E2CD-219

12、0-fiBOB5FE-C9E2OSCDQFFEIE5D3000000000EB0000E8HEM1C4GG3DIG2308QFA3975E6B228D4258A003S01?BDD%F22D0346F683D2FONC001020304829320E252royruLinternklria.led感llyc<C:¥IND0»SsysteB32CID.exe一DEBUGC:IASI789.EXEMicrosoft(R>OverlayLinkerUei*sion3.60Cupyrlyht<C>MicrosoftCorp1983-1987.ft11rlyhtsreserved.RunFile789.EXE:ListFiletNUL.MAPJ:Libraries.LIBI-LINK:warningL4021:nostacksegmentC:nasn>CD.C:>BEBUGC:MASM789.EXE-TAX-14C4DX-0000CX-00F9DX-0000sr-0000DP-0000SI-0000DI-0000DS=14B4ES-14B4SS-14C4CS=14CAIP-0003NUUPElPLH

温馨提示

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

评论

0/150

提交评论