




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四、五、目的练 习 七 子 程 序 实 验.2.掌握主程序与子程序之间的调用关系及调用方法; 掌握子程序调用过程中近程调用与远程调用的区别; 掌握通过堆栈转送参数的方法。内容将 BUF 开始的 10 个单元中的二进制数转换成两位十六进制数的ASCII 码,在屏幕上显示出来。要求码型转换通过子程序 HEXAC 实现 ,在转换过程中 ,通过子程序 DISP 实现显示。编写一个主程序 ,从键盘接收若干个字符 ,然后用远调用的方法 ,调用子程序统计字符 串中字符” b的个数.子程序的参数是字符串的首地址 符” b子程序返回字符” b的个数参数传送采用堆栈实现 示字符” b及其个数(设为一
2、位十六进制数)。环境PC 微机DOS 操作系统或 Windows 操作系统MASM.EXE,LINK.EXE,DEBUG .COM 或宏汇编集成环境要求.1.2.TABLE, 字符串长度 N 及字 .主程序在子程序返回后 ,显第一个实验程序用子程序的近程调用实现。由于在调用 序又调用了 DISP 子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容 看到两个子程序的返回地址值。由于是近调用,地址值只包括返回地址的段内偏移 量。在每个子程序的执行中,检查 CS 值是不变的。 第二个程序是利用远调用的方法调用子程序的。在远调用情况下,主程序与子程序 处在不同的逻辑代码段中,可在子
3、程序执行中查看 CS 值,它与主程序中的 CS 值 是不同的。子程序调用后,堆栈中保留了返回地址的段地址及段内偏移量。 第二个程序中, 主程序与子程序之间参数的传送是由堆栈实现的。 一段是将参数 (此 处是串首址TABLE,串的长度N及待统计的字符“ b”)顺序压如堆栈,在子程序 调用后,通过 BP 指针对堆栈中的参数访问,并将统计的结果通过堆栈返回。有关 该方法的原理此处不再介绍。 预习子程序设计的基本方法,根据实验内容要求,画出子程序及主程序的流程图; 熟悉键盘键入字符串及用堆栈传送参数的程序段编制方法。HEXASC 子程序时,子程主要步骤编辑、汇编两个源程序,生成相应的可执行文件(.EX
4、E)用 DEBUG 的 R 命令, T 命令或 G 命令和 D 命令检查远程调用及近程调用时堆栈 的变化。特别是通过堆栈传送的参数和子程序取出的参数是返回参数的详细过程。 检查程序执行的结果是否正确。3.内容 1 流程图:开始工DL=ALCL=4dL左移四位,使最高位移至 最低位, P USHCX,PUSH AX调用子程序DIS PPOP AX ,DL=AL ,将 DL高四位置零调用子程序DISP , POP CX返回主程序主程序子程序HEXASC子程序DISP内容1结果:mam也:DOCUME1 ADniNI*lriVDOCU-liiasiirirtEri EX71. ASM nicroso
5、f t Mac pd tssembler Uers ion 5Copyright Microsoft Corp 1981-1985, 13S7.All rights reserued.Object filename EX71.OBJ= Source listin NUL.LST: Cross-refeKence NUL.CRF:50356+ 449132 i/tes symbo. space free0 Uarning Erro Q_ISSevere Errors皿:DOCUME1 XADMINI*ll1VD0CU-liiasiiLlNK EX71.OBJMicrosoft Ouerlay L
6、inker Uepsion 3_60Copi/riarht tticrosoft Corp 1983-1987, All i*ighcs resepued.Run File EK71.EHE; List File LNUL-MAPl: Libraries F,LB;LtNK : warning L4021: no stack segmentp t DOCUMElflDttIMllMiyDOCllliiasnEX71 P BCDDEeie2e33A 4B5C6Fb i DOQJHET DM H1 叫战血 OCUTF 日$心_TT m4sm - DEBUG EX71.EXED;DOCUHErflD
7、MINI -UB0QB 0040QBDF aSDF QBDF 0BDF QBDF 0BDF QBDF 0BDF 0BDF BBDF 0BDF QBDF 0BDF QBDF BBDF BBDF BBDF BBDF BBDF BBDF aSDF QBDF 0BDF QBDF 0BDF aSDF 0BDF 0BDF BBDF QBDF*1 riVDOGU*1 fiasnDEBUG EX71.EXEOQQO 0003 0005 0009 ooec 000E 0011 0012 0014 0016 0018 0019 001A 001C 001E 0Q20 0023 0Q24 B02G 0029 002
8、 C 002 D 002 E 0031 0033 0036 0039 003 B 屈D 003 EB8DE0B SEDS aDlEBOQS B90Aa0 8A07 8070043EZF8 B44CCD2151 5QSAD0 Bi阳D2EA E0QB0e 5BaADO8BE2BFE8O20e S9C3 SBFAa? 7603 80C207 800230B402CD21 C3B8FD05L p hh l lUUAUULCOUTSSUURLPUDLPTPEDDVTTU OOEOOANOONUUOOHAOONAOEMBDDONEO MMLMncILnIPPNnscpnAcPRCJAAHIRMAX,QB
9、DEBX,0000 CX,000A AL, BX 06180000 AH,4CAX DL.ALDL,CL 002E anDL,ALDL,0FQ02E exDL,09 0036 Dt,07 DL,30 AH, 02 21AK,05FD-G-neneQQIEBX000QES=0BCEnx=eBABPS=0BDE iBDF;0Ql D2EAFg=001Enx=0BnB bs=QBDE aBDF:B029 ER毗腼-G=0029B nX=Q242 bS-BBDE eBDF:003D C3CH =0004 DK=林朋 B SF=FFFASS=0BDE CS=0BDF iP=QQIE SHRBP=e00e
10、 SI-QO0Q DI=0000NU UP I PL NZ NH PO NCB0Z9DL,CLEX =00 00ES=0BCE0Q3DBX=O0eES-0BCE内容2流程图:ex =0004 DX=B00B P=FFFCSS =0BDE CS=0BDF 1P=0029CALL002Eex=0004DX=004g SP=FFFASS-0BDE Cg=0BDF IP-003DRETBP=0000 EJ =0000 DI=0000NU UP El PL HZ NA PO NCBP=QOOe SI=0000 DI=QQ0QNU UP I PL NE HA P NC开始/从键盘输/ 入数据存 /入缓冲区
11、把输入的数据的有效地址送入 SI, CL = SI+1,即输入数据的长度AL= b ,用于比较将 SI、ex、AX存入堆栈调用CHECK函数,将b个数存入 AL中/输出/rAL的十六进制数1VT(返回主程序主程序子程序内容2结果:Object filenane ex72.OBJ= Source listing NUL.LSin: Cposs-pef eienc e CNUL-CRF:50278+ 449210 Bytes synhol space freeUarning Errors Severe Errorsp :DOCUME1 ADMINIlMVDOCUliiasiilink ex72 .
12、objHicrosaft Ouerlay Linker Uersion 3_60Dpright ttlciosoft Corp 1983-19?. All j(*ights reserued.Run File EK72.EXE:List File LNUL.MAP:Lib*4iie3【.LIEU:LINK : warning L4B21: no stack segnent p : DOCU nEl XADHINl-lMIV DOCU Tiias iiex72D :DOCUME1 ADniNItViDOCU*1 iiasnex72 hjkbfbJAtkbnbQQ0Q 胸03 0005 0009
13、00&B 她D QQ&F eeii B013 0017 001A 0Q1C B01D OQIE 0021 0023 0024 0025 0026 002 B 0020 002 D 002 F 0031 0Q33 003 G 0Q3S ms 0Q3E 000B8DE0B OEDS 80160100B40ACD21B402CD21 8D3GB10e 3A4C01BE 00464&A0OQ0O 04005651509AeO0eEA0B5850SAD0 Bi昭D2EA a0FA09 7603 800207SeC23QB402CD21MOU MOU LEA ttOU I NT MOW MOU I NT
14、LEA MOW non INC INC HOU HOU PUSH PUSH PUSH CALL POP PUSH NOU MOU SHR CMP JBE ADD ADD nou I NTAX.QBDEDK,000121DS0AAH, 0221S1,0001 CLUSI+01 CH, 00SISIAL,0000AH, 00SICX0股EA询腌e AMAXDL,AL CS阳DL,CLDL,090030DL,07AH, 02210025PS=0BDEpBE4泪025 50Pff=0025BX-0000ES=0BCEGM=0007SS=0BDE CS=0BE4PUSH AXSP-FFFCIP=0025
15、BP-e00e s1-0003 DI=0000NU UP I FL NZ NA PE NC0040EX =00 BQES=0BCEex =0004DX=0030SS =0BDE CS=0BE4I NT 21BX=02B3 bS=0BDECD21P 3(=0040P3.ProsfT*aii tefninated nopmallyEP=FFFE IP=0040BP=0000S1=00BA DI=B00BNU UP El PL NZ NA PE NC内容1代码:DATA SEGMENTBUF DB 0ABH,0CDH,0DEH,01H,02H,03H DB 3AH,4BH,5CH,6FHDATA E
16、NDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DA TAMOV DS,AX LEA BX,BUFMOV CX,0AHMOV AL,BX CALL HEXASC INC BXLOP:LOOP LOP MOV AH,4CHINT 21HHEXASC P ROC NEARPUSH CXPUSH AXMOV DL,ALMOV CL,4 SHR DL,CLCALL DISP POP AX MOV DL,ALAND DL,0FHCALL DISPPOP CXRET HEXASC ENDP DISP PROC NEARCMP DL,9JBE NEXTA
17、DD DL,7NEXT:ADD DL,30HMOV AH,2DISPCODEINT 21H RET ENDP ENDS内容 2 代码:DATA CHAR BUF DATA MCODEEND STARTSEGMENTDB bDB 50H,?,50H DUP(?)ENDSSEGMENTASSUME CS:MCODE,DS:DA TA START: MOV AX,DA TAMOV DS,AXLEA DX,BUFMOV AH,10INT 21HMOV DL,0AHMOV AH,2INT 21HLEA SI,BUFMOV CL,SI+1MOV CH,0INC SIINC SIMOV AL, CHARMOV AH,0PUSH SIPUSH CXPUSH AXCALL FAR PTR CHECKPOP AX PUSH AXMOV DL,ALMOV CL,4SHR DL,CLCMP DL,9 JBE J1ADD DL,7J1:ADD DL,30HMOV AH,2 INT 21HJ2:POP AX MOV DL,AL AND DL,0FH CMP DL,9 JBE J2 ADD DL,7 ADD DL,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上半年齐齐哈尔医学院附属第二医院公开招聘编制内工作人员20人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025内蒙古正镶白旗农牧和科技局招聘特聘农技员8人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年临海市海洋经济发展局下属事业单位公开选聘工作人员1人考前自测高频考点模拟试题附答案详解
- 2025年福建省福安市公安局招聘85人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025湖南中烟工业有限责任公司博士后科研工作站博士后招聘1人考前自测高频考点模拟试题及一套完整答案详解
- 2025广东深圳大学弋泽龙教授团队招聘1名研究助理模拟试卷及1套完整答案详解
- 2025广东粤电大埔发电有限公司招聘16人模拟试卷及答案详解1套
- 2025年铜川市为县以下医疗卫生机构定向招聘笔试考前自测高频考点模拟试题带答案详解
- 2025广东省中医院贵州医院第十三届贵州人才博览会引才19人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年合肥滨投文化创意发展有限公司招聘3人考前自测高频考点模拟试题及参考答案详解
- 心肺复苏CPR知识考核试题及答案
- 2025年黄冈市数字发展研究中心公开招聘工作人员1人考试参考试题及答案解析
- 2025年中国聚丙烯硬质塑料包装行业市场分析及投资价值评估前景预测报告
- 软件系统交付流程规范与管理办法
- 元气森林营销活动
- XXX药店二类医疗器械零售经营备案质量管理制度
- 2025江苏连云港东海县部分机关事业单位招聘劳动合同制工作人员6人考试参考试题及答案解析
- 门座起重安全培训资料课件
- 中国沈阳铁路局劳动合同8篇
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
- 尿素车间氨泄漏事故应急救援预案
评论
0/150
提交评论