实验五 子程序设计实验(设计性实验).docxVIP

实验五 子程序设计实验(设计性实验).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验五 子程序设计实验(设计性实验)

实验五子程序设计实验(设计性实验)实验目的1.熟悉汇编语言程序设计结构;2.熟悉汇编语言子程序设计方法;3.熟悉利用汇编语言子程序参数传递方法;4.熟悉汇编语言字符串处理基本指令的使用方法;5.掌握利用汇编语言实现字符串的输入输出程序设计方法;6.掌握数制转换程序实现方法。二、程序代码1.DATAS SEGMENT PUT DB 20 DB ? DB 30 DUP(0) STRIN DB 20 DUP(0) NUM DB 0 ZIFU DB put in buf:$ XUHAO DB exhange buf number:$ CHSH DB insert or delete:$ XIUGAI DB buf changed:$ DATAS ENDSSTACKS SEGMENT STACK DB 64 DUP(0)STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSBUFOUT PROCMOV AH,9INT 21HRETBUFOUT ENDPENTE PROC MOV AL,0AHMOV DL,ALMOV AH,2INT 21HRETENTE ENDP;回车BUF PROC MOV AH,1INT 21HRETBUF ENDPSTART: MOV AX,DATAS MOV DS,AX LEA DX,ZIFU CALL BUFOUT;输出输入提示 LEA DX,PUT MOV AH,10 INT 21H;输入字符串CALL ENTELEA DX,XUHAOCALL BUFOUT;输出序号提示CALL BUFMOV BL,AL;修改字符序号给BLCALL ENTELEA DX,CHSHCALL BUFOUT;输出插入删除提示CALL BUF;输入i/d表示插入或删除MOV CH,ALCMP CH,69HJNZ CONTCALL ENTELEA DX,XIUGAICALL BUFOUT;输出修改字符提示CALL BUF;修改的字符,在AL中MOV BH,AL;结果在BH中CONT:MOV SI,1MOV CL,[SI];字符串长度INC SICMP CH,69HJNZ TOINC CLTO1:LEA DI,STRINS:DEC BL;修改序号减一CMP BL,30HJNZ OUT1CMP CH,69HJNZ S0MOV [DI],BHINC DI S2: CMP CL,0JZ LASTJMP OUT0S0:INC SIJMP S2OUT1:MOV AX,[SI]MOV [DI],AXINC SIINC DIDEC CLJMP SOUT0:MOV AX,[SI]MOV [DI],AXINC SIINC DIDEC CLJMP S2S1: INC SIDEC CLJMP S2EN: CALL ENTEJMP CONTTO: DEC CLJMP TO1LAST:MOV AX,24HMOV [DI],AXCALL ENTELEA DX,STRINCALL BUFOUT;输出结果MOV AH,4CH INT 21HCODES ENDS END START结果见图1.在第三个字符插入‘?’1.将第三个字符删掉2.DATAS SEGMENTBUF DB 5 DB ? DB 5 DUP(?)MINUS DW 10STORE2 DB 0DH,0AH,5 DUP(0),0DH,0AH,$EROR DB 13,10,INPUT ERROR!$DATAS ENDSCODE SEGMENT ASSUME CS:CODE,ES:DATAS,DS:DATASSTART: MOV AX,DATAS MOV ES,AX MOV DS,AX CALL INPUT CALL CHECK CALL CHANGE CALL OUTPUT MOV AX,4C00H INT 21HCHANGE PROCMOV AX,WORD PTR BUF+2XCHG AL,AH;AH放第一个数,AL下一个数CMP AH,39HJBE TO5 SUB AH,37H;对应十进制 JMP TPTO5: SUB AH,30HTP:CMP AL,39HJBE TO1 SUB AL,37H JMP TP1TO1: SUB AL,30HTP1: MOV CL,4 SHL AH,CL;乘以十六 OR AH,AL

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档