汇编实验报告5.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编实验报告5

四 川 大 学 计 算 机 学 院、软 件 学 院 实 验 报 告 班级:____第 周 ?汇编语言程序设计课程设计? 实验课时 2 实验项目 子程序与输入输出程序设计 实验时间 2013.12.20 实验目的 掌握子程序设计方法,常用系统调用的使用方法,能够设计字符串处理相关的程序。 实验环境 在masm编译器中写下代码用,debug进行调试记录相关数据,xp操作系统? 实验内容(算法、程序、步骤和方法) 实验要求: 从键盘输入(带回显)一个长度在10字符以内的字符串,并保存在缓冲区;检测并删除字符串中的数字字符,将字符串中所有小写字母改为大写字母;将处理后的字符串在新的一行显示,若字符串为空串则显示 ‘?’。 二、原理分析: 用CALL指令调用子程序?? 直接调用CALL?PROC_NAME?(可以为Near?、Far)? (SP)-2=SP? (IP)=(SP)? PROC_NAME偏移量=IP? *该程序中使用段内直接调用? 间接调用CALL? 16位寄存器或字内存单元? (SP)-2=SP? (IP)=(SP)? (16位寄存器或字内存单元)?=IP?? 无参数返回RET?或?RETN? ((SP))=IP? (SP)+2=SP? 带参数返回?RET?N?或?RETN?N? ((SP))=IP? (SP)+2=SP? (SP)+N=SP?? 系统调用? 中断调用? INT?中断调用类型号 (SP)-2=SP? (FR)=(SP)? (SP)-2=(SP)? (CS)=?(SP)? (SP)-2=(SP)? (IP)=?(SP)? 0=IP? 0=TP? (0000:中断类型号*4)=IP? (0000:?中断类型号*4+2)=CS?? 中断返回?IRET ((SP))=CS? (SP)+2=SP? ((SP))=IP? (SP)+2=SP? ((SP))=FR? (SP)+2=SP?? 三、实验源代码: DATA SEGMENT MAXLEN DB 20 INPTLEN DB 0 STR1 DB 10 DUP(0) STR2 DB 10 DUP(0) DATA ENDS STACK SEGMENT STACK DW 40H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX LEA DX,MAXLEN ;输入字符串 MOV AH,0AH INT 21H XOR CX,CX LEA SI,STR1 ;SI,DI分别指向入,出口参数数据域 LEA DI,STR2 CALL CLRNUM ;调用子程序 CMP INPTLEN,0 JZ L0 CALL CHANGECH JMP OUTPUT L0: MOV BYTE PTR [DI],? MOV BYTE PTR [DI+1],$ OUTPUT: MOV DL,0DH MOV AH,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H LEA DX,STR2 MOV AH,09H INT 21H MOV AH,4CH INT 21H CLRNUM PROC PUSH DI PUSH SI PUSH AX PUSH CX MOV CL,INPTLEN LOP: CMP BYTE PTR [SI],30H JAE L1 JMP L2 L1: CMP BYTE PTR [SI],39H JA L2 DEC INPTLEN JMP L3 L2: MOV AL,[SI] MOV [DI],AL INC DI L3: INC SI LOOP LOP POP CX POP AX P

文档评论(0)

2017ll + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档